快轉到主要內容

如何進行Debian大版本系統升級,從Debian 12升級到13

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Linux系統安裝教學
標籤   Debian
目錄

本文給想讓Debian GNU/Linux系統大版本升級的用戶參考,例如Debian 12 Bookworm升級到Debian 13 Trixie,或是Stable分支升級到下一個Stable分支這樣。

想從Debian Stable分支升級成Debian Testing或Debian Sid分支的桌面系統用戶亦可以參考本文作法,但風險自負。

升級所需時間視系統規模而定。例如我升級3000個套件的Debian系統大約要一小時左右,這還不包含除錯時間。而伺服器生產環境尤其需謹慎考量升級風險。

不建議跳大版本升級,例如Debian 11升Debian 13?Debian開發者說無法保證這樣做會不會有問題。建議依序從11 → 12 → 13升到最新版Debian比較保險。

有時候,你不用急著更新,Debian開發團隊在推出新版本後仍會維護舊版的套件幾年時間(參見Debian LTS),所以不是新版本推出後,舊版就不能用了。不急的情況下可以緩一緩。

1. 前置作業
#

使用uname -a ; lsb_release -a指令查看目前系統版本

接著確認以下事項:

  1. 準備幾包乖乖放在主機上。

  2. 閱讀Debian官網的發行說明,查看目前的最新穩定版本代號,還有升級前的注意事項。每一個Debian正式版本發布後都會有一本詳盡的參考手冊。有時候,新版本會有一些breaking changes,例如Debian 11升級12的時候,要重新區分non-freenon-free-firmware套件庫。

  3. 大版本更新前建議備份資料,除了手動指令複製之外,桌面用戶可以用Timeshift完整備份至另外一個硬碟。

  4. Ventoy製作Debian開機LiveUSB,防止無法開機的時候可以修復系統。

  5. 如果你的軟體是需要從第三方套件庫安裝的,例如Nvidia CUDA、Google Chrome、Docker這類的,請先查詢是否有支援新版Debian再考慮要不要升級。如何確認目前有啟用哪些第三方套件庫?檢查/etc/apt/sources.list.d/目錄下的檔案就知道了。

  6. 用APT以外途徑安裝的軟體(例如make編譯)不會自動升級,可能要在大版本更新之後重新編譯安裝。

  7. 使用Flatpak、Snap、AppImage安裝的軟體應在系統大版本更新後再嘗試更新。

  8. 確認以上事項後,將系統套件更新至目前Debian版本的最新版

sudo apt update

sudo apt upgrade

sudo apt full-upgrade
  1. 重開機。

  2. 為了方便除錯,推薦安裝Aptitude,它能夠更智慧的處理套件衝突問題:

sudo apt install aptitude

2. 變更Debian套件庫的版本代號
#

Debian沒有官方工具能幫你升級系統,一切要靠指令手動修改。

請至Debian官網查詢各個版本的代號。例如目前系統是Debian 12穩定版,而我想要升級到下一個Debian 13穩定版,那麼就要將套件庫裡全部的bookworm字串替換成trixie

  1. 編輯/etc/apt/sources.lists/etc/apt/sources.lists.d/目錄下的全部檔案
# Debian自身的套件庫
sudo vim /etc/apt/sources.lists

# 第三方套件庫
sudo vim /etc/apt/sources.lists.d/
  1. 將看到的bookworm字串全部換成trixie字串。要注意有些第三方套件庫不會用代號表示而是使用數字,這時請自行變通。

  2. 更新套件列表

sudo apt clean

sudo apt update
  1. 就會看到爆出許多更新。

  2. 此時要檢查有沒有套件庫是顯示紅字404警告的,這代表開發者尚未支援最新版本的Debian,有的話要先將其處理掉再繼續。看是要:

  • 放棄升級。把改過的字串再改回去,因為你還沒真的升級,只要再apt update一次重新整理套件目錄,一切照舊。
  • 手動將套件庫刪除再升級,刪除/etc/apt/sources.lists.d/下的套件庫檔案,然後再繼續升級。

3. 開始升級Debian系統
#

  1. 升級系統時保持網路連線穩定,不要讓螢幕自動鎖定,關閉自動休眠設定。需注意升級Debian系統的時候桌面環境有機率會自動重啟,終端機崩潰,導致升級中斷的風險產生。最保險的辦法是用SSH或tty純文字模式跑更新指令,這樣就不會有升級到一半GUI崩潰的問題。

  2. 使用systemctl指令停止正在執行的重要服務,防止干擾升級。

  3. 升級所有套件。APT的升級日誌位於/var/log/apt/term.log

sudo apt upgrade

sudo apt full-upgrade
  1. 在升級的過程有時候要依照畫面指示,手動介入操作。

閱讀APT的發行新聞,讀完就按q退出

要不要讓系統在沒有詢問的情況下就重啟服務?建議選No。

可能還得確認是否要讓程式的新版設定檔覆寫舊版檔案。按Z查看你是否有變更過該檔案。如果你沒動過該檔案就選Y。

像SSH的設定很重要,先保留原版設定。

  1. 遇到 下列的套件有未滿足的相依關係 (The following packages have unmet dependencies) 的錯誤就得手動排除

通常是先嘗試sudo apt install -f讓它修復。或者用apt remove移除沒有滿足依賴的套件,再重試sudo apt upgrade

或者執行:sudo aptitude,依照畫面指示來處理衝突的套件。

  1. 升級完成後,重開機
sudo shutdown -r now
  1. 輸入指令uname -a ; lsb_release -a查看升級後的Debian版本

  2. 再跑一次sudp apt update確認沒有套件要升級即是完成。使用sudo apt autopurge清除多餘的套件。

參考資料
#

相關文章

Arch Linux安裝教學,KDE Plasma桌面 + 中文輸入法
分類   Linux系統 Linux系統安裝教學
標籤   Arch Linux Arch User Repository
加入套件庫,將Kubuntu轉換為KDE Neon,安裝最新版Plasma桌面套件
分類   Linux系統 Linux系統安裝教學
標籤   KDE Plasma Ubuntu
Debian 11 Bullseye安裝教學,KDE桌面環境+中文輸入法
分類   Linux系統 Linux系統安裝教學
標籤   Debian KDE Plasma

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。