linux - 如何停止/禁用/保持 linux 中软件包的自动更新?

标签 linux ubuntu apt package-management unattended-upgrade

我在 Ubuntu 18.04 LTS 上为我的 Kubernetes 集群安装了一些软件包 (Docker, Kubeadm, Kubelet, Kubectl)。
不希望这些软件包自动更新,因为当彼此之间发生更新时,它们之间会出现一些问题。
我只想在它们稳定时手动更新。
停止包自动更新的正确命令是什么?
我用来在 Ubuntu 18.04 上安装它们的命令

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

sudo add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/ubuntu \
   $(lsb_release -cs) \
   stable"

sudo apt-get update

sudo apt-get install -y docker-ce=18.06.1~ce~3-0~ubuntu

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -

cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list
deb https://apt.kubernetes.io/ kubernetes-xenial main
EOF

sudo apt-get update

sudo apt-get install -y kubelet=1.12.7-00 kubeadm=1.12.7-00 kubectl=1.12.7-00

最佳答案

动机 :您不想对 linux 机器上的敏感软件包承担任何风险(当您的应用程序处于生产状态并且客户使用它时,或者在内部运行一些重要任务时,新版本可能会破坏更改并意外导致停机) .在这种情况下 - 您希望将特定版本固定到您的包中,并确保在没有明确的行动和您的批准的情况下不会发生升级。
解决方案 : 你应该禁用 unattended-upgrades功能和 pin你的包到你使用的当前版本(换句话说 - 保留这个版本)。
第 1 步 :禁用自动升级(又名无人值守升级)

$ sudo vim /etc/apt/apt.conf.d/20auto-upgrades

#edit these lines - which disabling the upgrade feature.

APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "0";
第 2 步 :保留并卡住您想要防止自我升级的特定软件包:
sudo apt-mark hold <package-name>

关于linux - 如何停止/禁用/保持 linux 中软件包的自动更新?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56791702/

相关文章:

ubuntu - 如何解决VMware Player升级后Ubuntu Server TTY无法全屏的问题?

python - ubuntu 错误安装 python 坏了

使用 Ant 的 Java 6 注释处理配置

java - 如何在最终编译前使用java注解修改源代码?

linux - 我怎样才能重新安装apt?

c++ - (C++,Qt,Linux) 将游戏 map 坐标转换为图像坐标

c# - 在 Linux 上如何更好地将 ffmpeg 与 ASP.NET Core 一起使用?

php - 加载 PHP 扩展模块失败

linux - 使用 9 位序列号对文件进行排序和重命名

linux - 我是否需要为并发下载设置下载速度限制(使用 cURL),或者它们将平分?