這篇文章Ivon分享升級Ubuntu系統的步驟與注意事項。
Ubuntu大版本系統升級即是將Ubuntu系統升級到下一個新版,例如從Ubuntu 22.04 LTS升級到Ubuntu 24.04 LTS。
你問跳多個版本可不可以?像Ubuntu 16.04跳Ubuntu 24.04?你要確耶!不建議這麼做,這二個版本差了8年的時間,釋出時間相隔過長,容易出問題。
也不建議從Ubuntu LTS跳一般版Ubuntu(例如Ubuntu 22.04 LTS升Ubuntu 23.10)。
在這裡,Ivon介紹以指令升級Ubuntu的方法,不使用圖形工具。使用指令的好處是即使是沒有圖形介面的Ubuntu Server也能從SSH連線處理升級。
系統升級時間視你的網路速度和系統性能而定。比如,裝有3000個套件的系統大約花一小時升級,並且中間需要手動確認各種有的沒有的升級選項。
1. 升級系統前的檢查事項#
確認有無升級必要。參考 Ubuntu Release表格,Ubuntu LTS不會出新版本就停止支援舊版了,舊版Ubuntu LTS自該版本釋出的年份開始算,系統的更新支援長達5年(例如Ubuntu 22.04 LTS就是從2022年支援到2027年),企業的付費支援更是長達10年。因此如果你不追求最新版套件,那麼可以不必急著升級到最新版系統。
確認第三方套件庫的支援狀況。第三方套件庫指的是Ubuntu官方套件庫以外的套件庫,也就是PPA這種的,像是Nvidia CUDA相關套件。
不知道有啟用哪些第三方套件庫?第三方套件庫可以開啟/etc/apt/sources.list
檔案確認
另外也請確認/etc/apt/sources.list.d
目錄下的檔案。
先到該軟體網站確認他們支援新版Ubuntu。否則的話硬升級下去可能會出現許多套件衝突。Ubuntu在升級前也會警告哪些套件沒有支援最新版系統。
如果你有軟體是用make編譯安裝的,那麼升級系統後最好重新編譯一次。
使用AppImage、Flatpak、Snap安裝的套件建議在系統升級之後再更新。
請使用 Timeshift備份重要資料。如果有空間就備份整個系統到另一個硬碟。
在升級系統時不要做其他事。如果有跑伺服器服務的,請用systemctl指令把他們停掉,留著必要的SSH就好。
為了防止更新後無法開機,請事先製作LiveUSB方便修復系統。
2. 查看最新Ubuntu版本#
在你的電腦執行以下指令,它會列出目前你的系統版本
lsb_release -a
你可以到 Ubuntu Releases查詢最新系統版本。
注意「LTS」的就看「LTS」的,不要跟最新版搞混了。
並且得看正式發布的版本,不是Beta版。
每個新版本Ubuntu發布後通常都會連帶發布「Release Notes」,請閱讀裡面的重要事項。
3. 開始升級Ubuntu系統#
- 首先,升級系統所有套件到最新版
sudo apt update
sudo apt upgrade
- 重開機,確保核心有跟著更新完成。
sudo shutdown -r now
- 如果你是從SSH連線操控系統,請確保1022通訊埠有開啟。Ubuntu會在升級的時候自動開啟1022通訊埠,作為備用SSH登入方法。
sudo ufw allow 1022/tcp
sudo ufw reload
- 接著,安裝Ubuntu官方提供的升級程式
sudo apt install update-manager-core
- 執行指令,開始升級系統。如果出現
There is no development version of an LTS available.
就是還沒正式開放升級。
sudo do-release-upgrade
- 接著按照螢幕指示升級系統。
比較重要的是Restart services during package upgrades without asking?
,是否自動重啟所有服務?建議選No,讓系統在重啟服務之前先詢問你。免得升級到一半桌面環境或SSH重啟,打斷升級。
升級的時候有時需要手動確定,是否讓程式新版設定檔取代你的系統設定檔,例如SSH方面的設定。或者你得自己用diff程式比較後再抉擇。
- 等待升級完成,看到訊息
System upgrade is complete.
後,立即重開機。
sudo shutdown -r now
- 重開機後,確認套件都已是最新版
sudo apt update
- 移除無用的套件
sudo apt autoremove
4. 升級後重新啟用第三方套件庫#
為了系統穩定度考量,Ubuntu升級程式會在更新的過程中暫時停用sources.list
第三方套件庫,系統會把那些字串用#
註解掉。
系統更新完成後,再手動編輯啟用就行。
sudo vim /etc/apt/sources.list
ls /etc/apt/sources.list.d
sudo vim /etc/apt/sources.list.d/<檔案名稱>
那麼如果套件庫沒有自動更新到最新版Ubuntu,要如何處理呢?
通常這些套件庫的網址結構都很簡單,比如網址後面寫jammy
,指的就是22.04的套件庫。
那麼升級到24.04以後,就把jammy
的代號換成noble
就好啦。
再執行sudo apt update && sudo apt upgrade
升級套件。
如果套件庫還需要GPG金鑰,那麼你就得手動安裝新版金鑰的套件了。