背景概述
从CentOS变更到uBuntu或多或少会遇到一些坑,今天分享一个。
在Ubuntu系统中,自动更新是一个既方便又引发争议的功能。它可以帮助用户保持系统的最新状态,但有时也会因为自动更新而导致系统不稳定或不兼容。
Ubuntu系统的自动更新主要通过两个配置文件来控制:10periodic和20auto-upgrades。这两个文件位于/etc/apt/apt.conf.d/目录下,它们共同决定了系统的自动更新行为。
- 10periodic:这个文件用于控制更新的检查频率、下载频率等。
- 20auto-upgrades:这个文件则用于配置系统在发现更新后,是否自动下载并安装。
解决方案
- 10periodic配置
vi /etc/apt/apt.conf.d/10periodic
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
参数解析:
Update-Package-Lists “0”;:每天检查零次包更新列表。
Download-Upgradeable-Packages “0”;:不自动下载可升级的包。
AutocleanInterval “0”;:禁止清理不再使用的包缓存。
- 20auto-upgrades配置
vi /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
参数解析:
APT::Periodic::Update-Package-Lists “0”;:控制系统自动更新包列表的频率,0表示禁用自动更新包列表。
APT::Periodic::Unattended-Upgrade “0”;:控制系统是否自动安装已下载的更新包,0表示禁用自动安装更新。
- 清空缓存
为了确保没有遗留的包缓存,可以执行以下命令:
sudo apt autoremove
sudo apt clean && sudo apt autoclean
sudo rm -rf /var/cache/apt
sudo rm -rf /var/lib/apt/lists
sudo rm -rf /var/lib/apt/periodic
- 禁用服务
如果希望完全禁用 unattended-upgrades 服务,可以使用以下命令:
systemctl stop unattended-upgrades
systemctl disable unattended-upgrades
总结
通过以上步骤,可以有效地禁用 Ubuntu 系统的自动更新功能,避免因自动更新引起的系统不稳定或不兼容问题。用户可以根据需要手动更新系统,以确保更好的控制和稳定性。