自動升級包
我正在使用伺服器(debian 7),並且我目前正在執行 cron-apt,以便在有可用的新升級時向我發送電子郵件。
顯示新升級時,以下命令是否可以安全執行?
sudo apt-get dist-upgrade
在升級之前我應該做任何檢查嗎?
我有點擔心每次收到電子郵件時簡單地升級所有內容可能會導致失敗。
sudo apt-get dist-upgrade
執行起來非常安全,因為它不會對系統做任何事情,而是停下來要求您確認;)您必須添加一個-y
開關,該開關用於無人值守的升級,並且容易假設您總是回答“是”來提問:sudo apt-get -y dist-upgrade
。手冊頁指出如果發生不希望的情況,例如更改保留的軟體包,嘗試安裝未經身份驗證的軟體包或刪除基本軟體包,則 apt-get 將中止
但是在無人看管的情況下執行 dist-upgrade 總是有風險的,因此您可能希望避免這種情況。
您始終可以通過添加
-s
開關來檢查 apt 會做什麼,如下所示sudo apt-get -s dist-upgrade
:這將切換到模擬模式,在該模式下不進行任何更改,您可以安全地查看 apt 將對系統所做的所有更改。apt還有一種比較保守的執行方式,即
apt-get upgrade
. apt-get 的手冊頁非常清楚它的作用:檢索和升級目前安裝的帶有新版本的軟體包;在任何情況下都不會刪除目前安裝的軟體包,或者檢索並安裝尚未安裝的軟體包。目前安裝的軟體包的新版本如果不更改另一個軟體包的安裝狀態就無法升級,將保留其目前版本。
在我最初的回答中,我以某種方式假設您將通過 cron 執行 dist-upgrade,但在仔細閱讀之後,似乎並非如此。但是,我將相關段落作為一般性評論:
不建議
sudo apt-get -y dist-upgrade
通過 cron 執行,特別是如果您的 apt 源恰好指向一個測試分支(通常不應該發生在伺服器上,尤其是在生產中),因為您最終可能會得到一個無法使用的系統。如果您使用 Debian 的穩定分支,您會相對安全,但我仍然建議您參加升級。無論如何,如果您正在執行要執行重大更改的 dist-upgrade,您應該始終進行備份。以防萬一。
有一個包;-)。
除了
cron-apt
可以配置為自動執行某些升級之外,另一個有用的軟體包是unattended-upgrades
旨在安全地自動應用安全更新。除此之外,正如Erathiel所說,
dist-upgrade
自動執行並不安全,但只要您不盲目地回答“是”,每次需要升級時手動執行它就足夠安全了。