什么是保持Ubuntu服务器8.04更新的正确方法?

我有一个运行Ubuntu Server 8.04的Web服务器,我想知道正确的命令,以保持更新。

我一直在使用apt-get更新和apt-get升级,但偶尔会告诉我有一些软件包被阻止。 我一直在使用apt-get dist-upgrade来获取那些被封装的软件包。 这是处理它的最好方法吗? 我不想升级到8.10或其他任何东西,直到10.04 LTS出来。

更新:每个火花的评论,我应该注意到,'aptitude'可以在我的答案中用来代替'apt-get',但有一个例外:'apt-get upgrade'将被replace为'aptitude safe-upgrade' 。 APT的aptitude前端与apt-get相比有一些不错的特性,正如本文所述。 但是,如果你已经有了一个你使用apt-get进行pipe理的系统,你当然可以继续使用apt-get,而且可能应该这样做。 我们不在服务器上做很多软件安装/卸载,所以我没有发现使用aptitude是非常重要的,但是如果今天要启动一个全新的服务器,我可能会使用它。

最新的Ubuntu服务器文档仍然使用apt-get进行了详细说明,只是将aptitude作为APT的graphics前端来讨论。 虽然这当然是一个疏忽,但它肯定意味着使用apt-get没有任何问题。


我使用Ubuntu的无人值守升级包来自动应用安全更新。 这里是我设置它的注意事项(在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"; 

使用此configuration,将自动应用安全更新,更新列表将通过电子邮件发送给您。 尽pipe自动应用更新可能被认为是危险的,但我认为跟上安全更新是一项值得冒险的任务…而且“保持”需要自动化。

至于保持最新的软件包,我问了一个问题,以澄清你可能认为适用的dist-upgrade的含义 。 基本上,当你进行apt-get升级时,只有当升级不需要新的软件包或删除一个软件包(例如依赖关系不会改变)时,已安装的软件包才会升级。 如果升级的软件包有新的依赖关系,则需要使用apt-get dist-upgrade。 由于apt-get dist-upgrade也可以做一切apt-get升级,我通常默认使用它。 注意哪些软件包将被修改,并采取一些必要的预防措施。

简而言之:

 apt-get update apt-get dist-upgrade 

如果我对dist-upgrade想要做什么感到紧张,我会这样做:

 apt-get update apt-get upgrade 

至less要升级没有新的依赖关系的软件包,直到我做了一些研究。 无论你做什么,总有一个机会会破坏,所以你只能有一些信念:)

最后要说明的是,只要你正在使用安全更新,并且你相信Canonical在修补问题方面做得很好,那么你可能会发现保持最新的包并不是非常必要的。 如果服务器正常工作,那么…它的工作。

 aptitude update aptitude safe-upgrade 

Debian团队推荐这些天适应apt-get。 不过,我也看到一些地方说,如果你已经在特定的服务器上使用apt-get,你应该继续这样做,只是在未来的boxen上使用aptitude。

我通常使用aptitude完全升级,但不包含在手册页中。 奇怪…

你可以configurationubuntu来限制LTS版本的更新,这样你就不会被提供更新到当前不是LTS的新版本。 但是,在下一个LTS出局的那一天,它会提供更新。 第一天你可能不想要

因为我现在不是LTS版本,所以我不能查找这个设置,因为它没有提供。 我会回头看办公室,明天编辑这个条目,除非有人指出相关的设置。

我采取混合的方法。 我希望尽快升级,但不能以“无人值守”的方式进行升级,因为我已经升级了之前的升级。

我使用以下命令每晚运行一个cron作业:

 /usr/bin/apt-get update -qq;/usr/bin/apt-get dist-upgrade -duyq 

然后,如果有任何升级可用,他们下载,坐在那里等我,当我在早上读我的电子邮件。 然后我只是跑步

 apt-get dist-upgrade 

手动和注意问题。 在执行升级之前,通常我会对服务器执行备份或快照,如果软件包对于该服务器的function而言显得至关重要。

这通过立即通知我(或任何时候运行cron作业)任何可用的升级来解决问题,但仍然允许我在实际升级发生时在那里。

至于你的第二个问题,关于封装。 我不经常看到他们(也许是因为我用“dist-upgrade”而不是“升级”)。 但是当我这样做的时候,我发现通常可以通过删除和重新安装相关软件包来解决问题。

如果只关心保持安全性,可以使用cron-apt来设置自动更新,并注释除/etc/apt/sources.list中安全存储库以外的所有内容。