快轉到主要內容

如何進行Debian大版本系統升級

分類   Linux系統 Linux使用技巧
標籤   Debian
🗓️ 民國112年 癸卯年
✍ 切換正體/簡體字
目錄

本文給想讓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查看目前系統版本

接著確認以下事項:

  1. 閱讀 Debian官網的發行訊息(Release Notes),查看目前的最新穩定版本代號,還有升級前的注意事項。

  2. 大版本更新前建議備份資料,檔案系統為EXT4的可以用 Timeshift完整備份至另外一個硬碟。

  3. Ventoy製作開機LiveUSB以方便修復系統。

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

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

  6. 使用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

  1. 編輯/etc/apt/sources.lists/etc/apt/sources.lists.d/下的全部檔案

  2. 將看到的bullseye字串

  3. 全部換成bookworm字串。有些第三方套件庫不會用代號表示,這點要注意。

  4. 更新套件列表

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

此時要檢查有沒有套件庫是顯示紅字404警告的,有的話要先將其處理掉再繼續。

3. 開始升級系統
#

升級系統時保持網路連線穩定,螢幕不要自動鎖定。當然最保險的辦法是用SSH或tty純文字模式跑更新指令,這樣就不會有升級到一半GUI崩潰的問題。

APT的升級日誌位於/var/log/apt/term.log

  1. 升級所有套件
sudo apt-get upgrade
sudo apt-get full-upgrade
  1. 在升級的過程有時候要手動介入操作,例如設定不要停掉SSH服務、閱讀APT的發行新聞等等

  2. 可能還得確認是否要讓新版設定檔覆寫舊版檔案

  3. 遇到下列的套件有未滿足的相依關係的錯誤就得手動排除,像這個例子就是先安裝libwacom-common套件,之後再嘗試一次sudo apt upgrade && apt dist-upgrade

  4. 升級完成後,檢查多餘的套件,並將其刪除

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

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

參考資料
#

相關文章

Linux X11 螢幕縮放比例 & 個別程式縮放(scale)的方法
分類   Linux系統 Linux使用技巧
標籤   Linux GNOME KDE Plasma
Linux無法clone自己的Github repository的解決方法
分類   Linux系統 Linux使用技巧
標籤   Github Linux OpenSSH
Arch Linux安裝多重Python版本,使其共存
分類   Linux系統 Linux使用技巧
標籤   Arch Linux Python

留言板

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。要討論程式碼請用Giscus,匿名討論請用Disqus。

這是Giscus留言板,需要Github帳號才能留言。支援markdown語法,若要上傳圖片請貼Imgur或Postimages。您的留言會在Github Discussions向所有人公開。

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