保持 Ubuntu Server 8.04 更新的正確方法是什麼?
我有一個執行 Ubuntu Server 8.04 的 Web 伺服器,我想知道正確的命令來保持更新。
我一直在使用 apt-get update 和 apt-get upgrade,但偶爾它會告訴我有一些軟體包被保留。我一直在使用 apt-get dist-upgrade 來獲取其餘的保留包。這是最好的處理方式嗎?在 10.04 LTS 發布之前,我不想升級到 8.10 或更高版本。
更新:根據 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";
使用此配置,將自動應用安全更新,並且更新列表將通過電子郵件發送給您。雖然自動應用任何更新可能被認為是危險的,但我相信跟上安全更新是一項值得冒險的任務……坦率地說,“跟上”需要自動化。
至於使軟體包保持最新狀態,我提出了一個問題來闡明您可能會發現適用的 dist-upgrade 的含義。基本上,當您進行 apt-get 升級時,只有在升級不需要新包或刪除包(例如,依賴項不會改變)時,才會升級已安裝的包。如果升級的包有新的依賴項,那麼您需要使用 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 在保持修補方面做得很好,您可能會發現保持軟體包最新並不是非常必要的。如果伺服器正常工作,那麼……它正在工作。