本文給想讓Debian GNU/Linux系統大版本升級的用戶參考,例如Debian 11 Bullseye升Debian 12 Bookworm,Stable分支升級到下一個Stable分支這樣。
想從Debian Stable分支升級成Debian Testing或Debian Sid分支的桌面系統用戶亦可以參考本文作法,但風險自負。
升級時間視系統規模而定。例如我升級3000個套件的Debian系統大約要二小時左右,這還不包含除錯時間。而伺服器生產環境尤其需謹慎考量升級風險。
不建議跳大版本升級,例如Debian 9升Debian 11,Debian開發者說無法保證這樣做會不會有問題。Debian在推出新版本後仍會維護舊版本伺服器,依序從9→10→11升到最新版Debian還是有可能的。
1. 前置作業#
使用指令uname -a ; lsb_release -a
查看目前系統版本
接著確認以下事項:
閱讀 Debian官網的發行訊息(Release Notes),查看目前的最新穩定版本代號,還有升級前的注意事項。
大版本更新前建議備份資料,檔案系統為EXT4的可以用 Timeshift完整備份至另外一個硬碟。
用 Ventoy製作開機LiveUSB以方便修復系統。
如果你的軟體是需要從第三方套件庫安裝的,例如Nvidia CUDA、Google Chrome,請先查詢是否有支援新版Debian再考慮要不要升級。如何確認目前有啟用哪些第三方套件庫?開啟
/etc/apt/sources.list
檔案和/etc/apt/sources.list.d/
目錄下的檔案,看看網址有哪些不是Debian的伺服器的就知道了。用APT以外途徑安裝的軟體(例如make編譯)不會自動升級,可能要在大版本更新之後重新編譯安裝。
使用Flatpak、Snap、AppImage安裝的軟體應在系統大版本更新後再嘗試更新。
確認以上事項後,將系統套件更新至目前Debian版本的最新版
sudo apt-get update
sudo apt-get upgrade
sudo apt-get full-upgrade
2. 變更套件庫的版本代號#
Debian沒有官方圖形工具能幫你升級系統,一切要靠指令。
請至 Debian官網查詢各個版本的代號。
例如目前系統是Debian 11 Bullseye穩定版,而我想要升級到下一個Debian 12 Bookworm穩定版,那麼就要將套件庫裡全部的bullseye
字串替換成bookworm
。
編輯
/etc/apt/sources.lists
和/etc/apt/sources.lists.d/
下的全部檔案將看到的
bullseye
字串全部換成
bookworm
字串。有些第三方套件庫不會用代號表示,這點要注意。更新套件列表
sudo apt-get clean
sudo apt-get update
- 就會看到爆出許多更新。
此時要檢查有沒有套件庫是顯示紅字404警告的,有的話要先將其處理掉再繼續。
3. 開始升級系統#
升級系統時保持網路連線穩定,螢幕不要自動鎖定。當然最保險的辦法是用SSH或tty純文字模式跑更新指令,這樣就不會有升級到一半GUI崩潰的問題。
APT的升級日誌位於/var/log/apt/term.log
- 升級所有套件
sudo apt-get upgrade
sudo apt-get full-upgrade
在升級的過程有時候要手動介入操作,例如設定不要停掉SSH服務、閱讀APT的發行新聞等等
可能還得確認是否要讓新版設定檔覆寫舊版檔案
遇到
下列的套件有未滿足的相依關係
的錯誤就得手動排除,像這個例子就是先安裝libwacom-common
套件,之後再嘗試一次sudo apt upgrade && apt dist-upgrade
升級完成後,檢查多餘的套件,並將其刪除
sudo apt-get autoremove
- 重開機
sudo shutdown -r now
輸入指令
uname -a ; lsb_release -a
查看升級後的Debian版本再跑一次
sudp apt update
確認沒有套件要升級即是完成。使用sudo apt autoremove
清除多餘的套件。