我正在运行 Ubuntu 18.04 服务器,并试图禁用所有更新和升级,但仍然不太确定具体该怎么做。忽略随之而来的安全性方面,如何通过命令行禁用 Ubuntu 18.04、MySQL、Apache 和 PHP 的自动更新?
据我所知,当我在 Ubuntu 上禁用自动更新/包列表更新时,MySQL Apache 和 PHP 不应该自动更新,对吗?
对于 Ubuntu,我发现的唯一东西是在 /etc/apt/apt.conf.d/10periodic 中:
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
我会将其设置为 0。
APT::Periodic::Update-Package-Lists "1";
设置为 0 基本上使得任何包/软件(例如 MySQL Apache 和 PHP)都无法更新,对吗?
在 /etc/apt/apt.conf.d/50unattended-upgrades 中:
Unattended-Upgrade::Allowed-Origins {
"${distro_id}:${distro_codename}";
"${distro_id}:${distro_codename}-security";
"${distro_id}ESM:${distro_codename}";
// "${distro_id}:${distro_codename}-updates";
// "${distro_id}:${distro_codename}-proposed";
// "${distro_id}:${distro_codename}-backports";
};
在那里,我只需注释掉第 2-4 行。
我还需要做什么吗?或者此后所有自动更新/升级都被禁用了吗?
答案1
根据文档它说要更新中的设置/etc/apt/apt.conf.d/20auto-upgrades
。所以我也会将这些设置更新为"0"
:
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Unattended-Upgrade "0";
但为了万无一失,您仍然可以编辑/etc/apt/apt.conf.d/10periodic
并更新以下设置"0"
:
APT::Periodic::Update-Package-Lists "0";
APT::Periodic::Download-Upgradeable-Packages "0";
APT::Periodic::AutocleanInterval "0";
一旦完成上述更新,APT 管理的任何软件包都不会自动更新,包括 MySQL、Apache 和 PHP。
也可以设置APT::Periodic::Update-Package-Lists
为,"0"
因为您仍然可以在需要时使用 手动更新软件包列表,sudo apt update
并使用 手动更新软件包sudo apt upgrade
。
您不需要对 进行任何更新/etc/apt/apt.conf.d/50unattended-upgrades
。
您可能还想禁用 snap 包自动更新但是 MySQL、Apache 和 PHP 通常由 APT 管理,所以如果您真正关心的只是这些包不会自动更新,那么这不是必需的。
重要提示:禁用自动更新也意味着您将不会收到系统的重要安全更新,因此,除非您养成定期更新软件包的习惯,否则最好保持自动更新处于启用状态。
答案2
从 cron 任务中删除更新。
我在 Ubuntu 18.04 上发现了 2 个文件:
/etc/cron.daily/update-notifier-common
/etc/cron.weekly/update-notifier-common
删除这些文件或者注释掉文件内容
答案3
根据您所做的更改,无人值守升级应该被禁用。
作为检查,请关注 /var/lib/apt/periodic/ 几天。
$ ls -l /var/lib/apt/periodic/
total 0
-rw-r--r-- 1 root root 0 Aug 20 16:58 download-upgradeable-stamp
-rw-r--r-- 1 root root 0 Aug 21 06:56 unattended-upgrades-stamp
-rw-r--r-- 1 root root 0 Aug 20 16:58 update-stamp
-rw-r--r-- 1 root root 0 Aug 20 07:06 update-success-stamp
-rw-r--r-- 1 root root 0 Aug 21 06:56 upgrade-stamp
无人值守升级戳记应停止每日增加。
或者,您可以卸载该unattended-upgrades
软件包。如果您改变主意,只需重新安装即可。
此外,您必须冻结不基于 deb 的 snap 包,因此不要使用 apt 或无人值守升级。有关 snap 包,请参阅如何停止 snapd 自动更新?
答案4
如果您只想阻止某些软件包更新,例如 Apache 和 PHP,您可能需要分别查看 apt-pinning 和 apt-hold。这些允许保留某个程序/软件包的某个版本,即使有较新的版本可用。请参阅固定方法在 Ubuntu Wiki 中。