如何启用自动更新?

更新管理器经常向我提供更新(例如安全修复、来自PPA的更新)。
如何告诉我的Ubuntu安装在有可用更新时自动下载和安装它们?

1https://help.ubuntu.com/community/AutomaticSecurityUpdates - Alex Angas
另请参阅:https://ubuntu.com/server/docs/package-management#heading--automatic-updates - daviewales
5个回答

尽管使用apt-get upgrade -y并没有错误或危险(请参考本回答的评论),但不是实现这一目的的最佳方式。 unattended-upgrades 是自动更新的最佳实践之一,特别适用于无头机器或服务器!
您可以通过在终端中输入以下命令轻松设置unattended-upgrades:
sudo apt-get install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

从描述中:

 This package can download and install security upgrades automatically
 and unattended, taking care to only install packages from the
 configured APT source, and checking for dpkg prompts about
 configuration file changes.

虽然我同意那些crontab的条目不是一个好的选择:apt-get upgrade -y并不是那么糟糕。从-y的man页面上可以看到:"如果出现不可取的情况,比如更改一个被保留的软件包、尝试安装一个未经验证的软件包或者删除一个必要的软件包,apt-get将会中止操作。" - Marcel Stimberg
2但是对于您的服务器、网络应用程序等来说,一个重要的软件包可能并不是“必需”的软件包,并且有可能被删除。 - Weboide
1unattended-upgrades是首选,但apt-get -y upgrade并不是错误或危险的。sudo apt-get upgrade永远不会(无论是否使用y,无论是否明确获得用户批准)安装任何新软件包或卸载任何已安装的软件包。(来自man apt-get:"在任何情况下,当前已安装的软件包都不会被删除,也不会检索和安装尚未安装的软件包。")请记住,-y标志可以与其他可能更危险的命令一起使用,例如dist-upgrade - Eliah Kagan
17这缺少你必须设置APT::Periodic::Download-Upgradeable-Packages "0";为1,并且还应该在/etc/apt/apt.conf.d/10periodic中将APT::Periodic::AutocleanInterval "0";设置为几天吗?如果只有安全更新,您也可以不通过图形界面的方式来完成,而是需要取消注释// "${distro_id}:${distro_codename}-updates";/etc/apt/apt.conf.d/50unattended-upgrades中以实现对所有软件包的自动升级。然后可以进一步扩展以更新更多内容。 - redanimalwar
1现在我设置好了之后,更新会多久运行一次? - Karel Bílek
每天根据/etc/cron.daily/apt执行。 - Weboide
4需要服务器重启的更新会发生什么? - Diskdrive
1系统将创建一个文件(/var/run/reboot-required)来通知您需要重新启动。但是,unattended-upgrades不会采取任何操作来重新启动系统,这取决于您自己是否重新启动。 - Weboide
5官方文件还提到了启用通知(通过电子邮件),我认为这对于那些希望了解情况的人来说是很好的。https://help.ubuntu.com/lts/serverguide/automatic-updates.html - user383919
1我怎样才能在不需要与提示交互的情况下完成这个任务? - fredley
这会将我的LTS版本从18更新到20吗? - Harsha
官方文档似乎已经迁移到这里:https://ubuntu.com/server/docs/package-management#heading--automatic-updates - daviewales

在更新管理器中,点击“设置”按钮。将会弹出此对话框:

screenshot of Download and install automatically security updates

选择“自动下载和安装”。这将自动安装安全更新。如果您想远程为他们设置此功能,可以按照以下步骤操作:
sudo apt-get install unattended-upgrades
如果软件包已经安装,您可以执行以下操作:
sudo dpkg-reconfigure unattended-upgrades
以更改其行为。运行该命令后,请按照提示启用该功能。目前没有图形化方法可以将整个系统设置为自动更新所有内容(在自动升级方面,您希望保持安全),但自动安装安全更新是一个好主意。
如果您想自动获取更新和后备信息,请查看相关页面了解更多信息。

你可以通过命令行使用update-manager来启动更新管理器。 - Att Righ

你可以轻松地进行安全更新。
从系统设置中打开更新管理器。点击“设置...”按钮,然后在“更新”选项卡上,选择“自动安装安全更新”单选按钮。
要自动安装所有更新,请参阅下面的答案。

33这选择真让人失望,因为它没有正确回答问题,而且显示的是每个了解Ubuntu一点并且在对话中留心的人都已经知道的事情。最被赞同的回答才是正确的。 - redanimalwar

前往终端,并输入:
sudo dpkg-reconfigure unattended-upgrades

点击“是”以确认提示。您仍将收到有关“常规”更新的通知,例如包含错误修复的更新,但安全更新将自动安装。

我可以在没有提示的情况下进行吗?(所以打开无人看管的升级,无人看管 :) ) - pihentagy
1这个不会自动升级我的LTS,对吗? - Harsha
@Harsha 不行,你需要运行dist-upgrade来完成这个操作,因为新版本需要一个新的内核,而升级操作永远不会安装一个新的内核。 - majorgear

我使用 apticron 来通过邮件获取更新的通知。
在你的情况下,我会使用 cron-apt 或者 unattended-upgrades 来自动更新你的设备。