我在 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/