保持 Ubuntu Server 8.04 更新的正确方法是什么?

Cor*_*rey 1 maintenance package-management ubuntu patch-management

我有一台运行 Ubuntu Server 8.04 的网络服务器,我想知道正确的命令来保持更新。

我一直在使用 apt-get update 和 apt-get upgrade,但偶尔它会告诉我有包被阻止。我一直在使用 apt-get dist-upgrade 来获取其余的保留包。这是最好的处理方式吗?在 10.04 LTS 发布之前,我不想升级到 8.10 或任何以后。

Bod*_*den 6

更新:根据 sparks 的评论,我应该注意在下面的答案中可以使用“aptitude”代替“apt-get”,但有一个例外:“apt-get upgrade”将替换为“aptitude safe-upgrade” . 与 apt-get 相比,APT 的 aptitude 前端具有一些不错的功能,如本博客文章所述。但是,如果您已经拥有一个一直使用 apt-get 管理的系统,那么您当然可以继续使用 apt-get,并且可能应该继续使用。我们不会在服务器上进行大量软件安装/卸载,所以我不认为使用 aptitude 至关重要,但是如果我今天要启动一个全新的服务器,我可能会使用它。

最新的Ubuntu Server 文档仍然详细介绍了使用 apt-get,并且只讨论了 aptitude 作为 APT 的图形前端。虽然这当然是一个疏忽,但它确实意味着使用 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 "youremail@yourdomain.com";
    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";
Run Code Online (Sandbox Code Playgroud)

使用此配置,安全更新将自动应用,更新列表将通过电子邮件发送给您。虽然自动应用任何更新可能被认为是危险的,但我相信跟上安全更新是一项值得冒险的任务……坦率地说,“跟上”需要自动化。

至于保持软件包是最新的,我问了一个问题来澄清您可能认为适用的 dist-upgrade 的含义。基本上,当您进行 apt-get 升级时,仅当升级不需要新软件包或删除软件包(例如依赖项不会改变)时,才会升级已安装的软件包。如果升级后的包有新的依赖,那么你需要使用 apt-get dist-upgrade 来代替。由于 apt-get dist-upgrade 也做 apt-get upgrade 所做的一切,我通常默认使用它。密切关注将要修改的包并采取您可能认为必要的任何预防措施非常重要。

简而言之:

apt-get update
apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)

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

apt-get update
apt-get upgrade
Run Code Online (Sandbox Code Playgroud)

至少在我做一些研究之前升级没有新依赖项的包。但是,无论您做什么,总有可能会破坏某些东西,所以您只需要有一些信念:)

最后要注意的是,只要您正在应用安全更新,并且您相信 Canonical 在保持补丁方面做得很好,您可能会发现保持软件包是最新的并不是非常必要。如果服务器正常工作,那么......它正在工作。