我有一个运行 Ubuntu Server 8.04 的网络服务器,我想知道正确的命令来保持它更新。
我一直在使用 apt-get update 和 apt-get upgrade,但偶尔它会告诉我有软件包被扣留。我一直在使用 apt-get dist-upgrade 来获取其余的被扣留的软件包。这是最好的处理方法吗?在 10.04 LTS 发布之前,我不想升级到 8.10 或更高版本。
答案1
更新:根据 sparks 的评论,我应该指出,在我的以下回答中,可以使用 'aptitude' 代替 'apt-get',但有一个例外:'apt-get upgrade' 将被 'aptitude safe-upgrade' 取代。与 apt-get 相比,APT 的 aptitude 前端具有一些不错的功能,如本文所述博客文章。但是,如果您已经拥有一个使用 apt-get 管理的系统,那么您当然可以继续使用 apt-get,而且可能应该这样做。我们不会在服务器上进行很多软件安装/卸载,因此我认为使用 aptitude 并不重要,但如果我今天要启动一个全新的服务器,我可能会使用它。
最新的Ubuntu 服务器文档仍然详细介绍了如何使用 apt-get,并且只讨论了 aptitude 作为 APT 的图形前端。虽然这肯定是一个疏忽,但它确实暗示了使用 apt-get 没有任何问题。
我使用 Ubuntu 的 unattended-upgrades 软件包来自动应用安全更新。以下是我在 Ubuntu 8.04 LTS 服务器上设置它的说明:
$apt-get install unattended-upgrades update-notifier-common
Edit /etc/apt/apt.conf/50unattended-upgrades. Select only security upgrades, and set mail address
Unattended-Upgrade::Allowed-Origins {
"Ubuntu hardy-security";
// "Ubuntu hardy-updates";
};
Unattended-Upgrade::Mail "[email protected]";
Install mailx (required for unattended-upgrades mail to work)
$apt-get install mailx
Edit /etc/apt/apt.conf.d/10periodic :
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Download-Upgradeable-Packages "1";
APT::Periodic::AutocleanInterval "1";
APT::Periodic::Unattended-Upgrade "1";
使用此配置,安全更新将自动应用,更新列表将通过电子邮件发送给您。虽然自动应用任何更新可能被认为是危险的,但我相信跟上安全更新是一项值得冒险的任务……坦率地说,“跟上”需要自动化。
关于如何保持软件包最新,我问了一个问题澄清 dist-upgrade 的含义您可能会发现适用。基本上,当您执行 apt-get upgrade 时,仅当升级不需要新软件包或删除软件包(例如依赖项不会更改)时,才会升级已安装的软件包。如果升级后的软件包有新的依赖项,则需要使用 apt-get dist-upgrade。由于 apt-get dist-upgrade 也能完成 apt-get upgrade 所做的所有事情,因此我通常默认使用它。重要的是要注意哪些软件包将被修改,并采取您可能需要的任何预防措施。
简而言之:
apt-get update
apt-get dist-upgrade
如果我对 dist-upgrade 想要做的事情感到紧张,我会这样做:
apt-get update
apt-get upgrade
至少在我进行一些研究之前升级没有新依赖项的软件包。但是,无论你做什么,总有可能会出问题,所以你必须要有信心 :)
最后要说的是,只要你应用了安全更新,并且相信 Canonical 能够很好地保持补丁,你可能会发现保持软件包更新并不是那么必要。如果服务器运行正常,那么……它就运行正常。
答案2
aptitude update
aptitude safe-upgrade
Debian 团队目前推荐使用 aptitude 而不是 apt-get。 但是,我也看到一些地方说如果你已经在特定服务器上使用 apt-get,那么你应该继续这样做,并只在未来的 boxen 上使用 aptitude。
答案3
我通常使用 aptitude full-upgrade,但它没有包含在手册页中。奇怪...
您可以配置 ubuntu 以将更新限制为 LTS 版本,这样您就不会被要求更新到非 LTS 的当前较新版本。但是,下一个 LTS 发布的那一天,它会提供更新。您可能在第一天想要或不想要这个...
由于我目前使用的不是 LTS 版本,因此无法查找该设置,因为它没有提供。除非有人在我找到之前指出相关设置,否则我将在明天回办公室查看并编辑此条目。
答案4
如果你只是关心它的安全,你可以使用cron-apt设置自动更新,并注释掉 /etc/apt/sources.list 中除安全存储库之外的所有内容。