Ubuntu20.04环境禁止netplan自动更新解决方案
1 问题背景
在Ubuntu20.04环境执行更新命令:sudo apt upgrade -y 时总是会升级所有软件包,但是有些包是不能或不便升级的,如GPU驱动程序,升级后可能会导致无法使用。
案例:在执行更新命令后,netplan高版本无法兼容之前的网络配置,导致当前网络无法启动,进而影响BMS无法远程登录。
2 解决方法
针对以上问题背景,调研得出解决方法。通过命令:sudo apt-mark hold netplan.io,设置软件禁止自动更新。
apt-mark 命令可以对软件包进行设置安装标志,如手动(manual)、自动(auto)、不安装(hold)等。
以 netplan 为例,我们可以如下设置:
# netplan 自动升级
sudo apt-mark auto netplan.io
# netplan 手动升级,即当手动 apt update, apt upgrade 时会升级
sudo apt-mark manual netplan.io
# netplan 不升级,只有当 apt update 且 apt install netplan.io 时才会升级。hold 会阻止软件自动升级
sudo apt-mark hold netplan.io
# 取消阻止升级
sudo apt-mark unhold netplan.io
可以通过如下命令查看所有软件的标记状态:
# 查看自动升级的软件包
sudo apt-mark showauto
# 查看手动升级的软件包
sudo apt-mark showmanual
# 查看不升级的软件包
sudo apt-mark showhold
# 查看所有软件包状态
sudo dpkg --get-selections
3 验证过程,以【netplan.io】为例
3.1 标记软件禁止自动更新前
(1)执行升级前查看软件版本
执行更新操作前查看当前 netplan 的版本信息为:netplan.io 0.99-Oubuntu3~20.04.2
dpkg -l netplan.io
查看 netplan 可以更新的版本为:0.104-Oubuntu3~20.04.2
apt list netplan.io --upgradable
(2)执行全量升级命令
apt upgrade -y
(3)升级后查看软件版本
执行完更新操作后,可以看到 netplan 已经更新到新版本:0.104-Oubuntu2~20.04.4
3.2 标记软件禁止自动更新后
(1)执行升级前查看软件版本
另一台相同环境的机器,执行更新操作前可以查看当前 netplan 的版本信息为:netplan.io 0.99-Oubuntu3~20.04.2
dpkg -l netplan.io
查看 netplan 可以更新的版本为:0.104-Oubuntu2~20.04.4
apt list netplan.io --upgradable
(2)设置 netplan 禁止自动更新
通过以下命令设置 netplan 禁止自动更新
apt-mark hold netplan.io
查看禁止自动更新的软件列表,可以看到 netplan 已经设置为hold
# 查看所有软件包状态
sudo dpkg --get-selections
(3)执行全量升级命令
apt upgrade -y
(4)升级后查看软件版本和软件安装标志
执行完更新操作后,再次查看可以发现 netplan 并没有更新,依然是更新前的版本: 0.99-Oubuntu3~20.04.2
dpkg -l netplan.io
查看 netplan 可更新版本依然存在
apt list netplan.io --upgradable
查看禁止自动更新标记也存在
apt-mark showhold
(5)重启机器后,查看软件版本和软件安装标志
重启机器后,和上步操作一样,查看 netplan 禁止自动更新标志依然存在,并且软件也没有更新,当前版本: 0.99-Oubuntu3~20.04.2
- 点赞
- 收藏
- 关注作者
评论(0)