服務端升級Ubuntu 20.04 LTS 記錄

本文使用「署名 4.0 國際 (CC BY 4.0)」許可協議,歡迎轉載、或從新修改使用,但須要註明來源。 署名 4.0 國際 (CC BY 4.0)html

本文做者: 蘇洋linux

建立時間: 2020年04月25日 統計字數: 6119字 閱讀時間: 13分鐘閱讀 本文連接: soulteary.com/2020/04/25/…docker


服務端升級 Ubuntu 20.04 LTS 記錄

本文將介紹如何在當前時間點,將服務器版本的 Ubuntu 18.04 LTS 升級爲最新的 Ubuntu 20.04 LTS,以及升級過程當中的一些細節,但願能幫到躍躍欲試的 Ubuntu 同好。編程

將數據進行備份等操做須要自行處理,另外確保網絡穩定,建議都在服務器跳板機上進行操做,更爲穩妥。ubuntu

當前這篇內容已經運行在 Ubuntu 20.04 LTS 系統環境中,:)bash

準備工做

先使用 apt update 看看有哪些內容能夠升級。服務器

apt update 

Hit:1 http://mirrors.aliyun.com/ubuntu bionic InRelease
Get:2 http://mirrors.aliyun.com/ubuntu bionic-updates InRelease [88.7 kB]
Get:3 http://mirrors.aliyun.com/ubuntu bionic-security InRelease [88.7 kB]
Get:4 http://mirrors.aliyun.com/ubuntu bionic-updates/universe Sources [281 kB]                     
Get:5 http://mirrors.aliyun.com/ubuntu bionic-updates/main Sources [315 kB]                                               
Get:6 http://mirrors.aliyun.com/ubuntu bionic-updates/main amd64 Packages [915 kB]                                           
Get:7 http://mirrors.aliyun.com/ubuntu bionic-updates/main i386 Packages [669 kB]                                            
Get:8 http://mirrors.aliyun.com/ubuntu bionic-updates/main Translation-en [315 kB]                                           
Get:9 http://mirrors.aliyun.com/ubuntu bionic-updates/universe i386 Packages [1,014 kB]                                      
Get:10 http://mirrors.aliyun.com/ubuntu bionic-updates/universe amd64 Packages [1,065 kB]                                    
Get:11 http://mirrors.aliyun.com/ubuntu bionic-updates/universe Translation-en [331 kB]                                      
Hit:12 https://download.docker.com/linux/ubuntu bionic InRelease                     
Get:13 http://mirrors.aliyun.com/ubuntu bionic-security/universe Sources [168 kB]
Get:14 http://mirrors.aliyun.com/ubuntu bionic-security/main Sources [146 kB]        
Get:15 http://mirrors.aliyun.com/ubuntu bionic-security/main amd64 Packages [692 kB]
Get:16 http://mirrors.aliyun.com/ubuntu bionic-security/main i386 Packages [459 kB]  
Get:17 http://mirrors.aliyun.com/ubuntu bionic-security/universe amd64 Packages [657 kB]
Get:18 http://mirrors.aliyun.com/ubuntu bionic-security/universe i386 Packages [618 kB]
Fetched 7,823 kB in 3s (3,106 kB/s)                                                  
Reading package lists... Done
Building dependency tree       
Reading state information... Done
19 packages can be upgraded. Run 'apt list --upgradable' to see them.
複製代碼

接着執行 apt upgrade -y 耐心等待軟件升級完畢便可。若是你最近已經更新過,則會獲得相似下面的內容提示。網絡

apt update 

Reading package lists... Done                        
Building dependency tree       
Reading state information... Done
All packages are up to date.
複製代碼

若是你以爲升級過程當中軟件源比較慢,能夠嘗試替換源,好比像下面這樣操做。ionic

sed -i -e "s/mirrors.cloud.aliyuncs.com/mirrors.tuna.tsinghua.edu.cn/" /etc/apt/sources.list
複製代碼

升級過程的小麻煩們

當咱們執行 do-release-upgrade 嘗試進行升級的時候,可能會出現三種狀況告訴咱們不可以升級。ui

系統中還有未徹底升級的軟件

當你執行完畢命令後,可能會獲得「Please install all available updates for your release before upgrading」的提示,這說明你其實並未將全部軟件都完成升級。

do-release-upgrade

Checking for a new Ubuntu release
Please install all available updates for your release before upgrading.
複製代碼

你可能會好奇,我明明執行過 updateupgrade 了,爲何還會出現這種狀況呢?

這裏有一個很大的多是,使用過 apt-mark 將部分軟件版本鎖定,須要先執行解鎖操做,好比:

apt-mark unhold docker-ce
複製代碼

至於如何看到須要升級或者解鎖的軟件呢?

可使用 apt update && apt list --upgradable 命令進行查詢:

apt list --upgradable 

...
Reading package lists... Done
Building dependency tree       
Reading state information... Done
1 package can be upgraded. Run 'apt list --upgradable' to see it.

...

Listing... Done
docker-ce/bionic 5:19.03.8~3-0~ubuntu-bionic amd64 [upgradable from: 5:19.03.6~3-0~ubuntu-bionic]
N: There are 23 additional versions. Please use the '-a' switch to see them.
複製代碼

而後在再次執行 apt upgrade -y 便可完成全部軟件升級。

可是千萬別高興太早,由於你還可能遇到接下來的事情。

解除系統升級鎖定

當全部軟件都升級就緒後,繼續使用 do-release-upgrade 升級軟件,會看到相似下面的提示。

do-release-upgrade 

Checking for a new Ubuntu release
There is no development version of an LTS available.
To upgrade to the latest non-LTS develoment release 
set Prompt=normal in /etc/update-manager/release-upgrades.
複製代碼

這裏由於官網還沒有正式打開版本推送,因此若是要想獲得版本更新,須要對 do-release-upgrade 添加命令行參數 -d,來容許獲取最新的升級包。

Usage: do-release-upgrade [options]

Options:

  -d, --devel-release   If using the latest supported release, upgrade to the
                        development release
複製代碼

做出升級路線選擇

若是你是 Ubuntu 18.04 LTS 用戶的話,此刻咱們須要作出一個決定,是一個版本一個版本升級,仍是直接跨版本升級,而若是是 Ubuntu 19.10 的用戶則簡單的多,由於不涉及跨版本問題,逐版本升級後半部份內容便可。

咱們詳細說說兩種升級方式。

Ubuntu 18.04 逐版本升級 Ubuntu 20.04

有一句流傳甚遠的話叫作「步子不能邁的太大」,某些時候也能夠用在軟件升級這件事上。

打開 /etc/update-manager/release-upgrades 文件,咱們能夠看到文件說明:

[DEFAULT]
# Default prompting behavior, valid options:
#
# never - Never check for, or allow upgrading to, a new release.
# normal - Check to see if a new release is available. If more than one new
# release is found, the release upgrader will attempt to upgrade to
# the supported release that immediately succeeds the
# currently-running release.
# lts - Check to see if a new LTS release is available. The upgrader
# will attempt to upgrade to the first LTS release available after
# the currently-running one. Note that if this option is used and
# the currently-running release is not itself an LTS release the
# upgrader will assume prompt was meant to be normal.
Prompt=lts
複製代碼

Prompt=lts 修改成 Prompt=normal ,而後執行 do-release-upgrade -d,會開始第一階段升級:

do-release-upgrade -d


Checking for a new Ubuntu release
Get:1 Upgrade tool signature [1,554 B]                                                                                       
Get:2 Upgrade tool [1,329 kB]                                                                                                
Fetched 1,331 kB in 0s (0 B/s)                                                                                               
authenticate 'eoan.tar.gz' against 'eoan.tar.gz.gpg' 
extracting 'eoan.tar.gz'

Reading cache
...
複製代碼

根據實際狀況,咱們「一路 Next」以後,在即將完成升級時,會看到下面的提示內容:

。。。
System upgrade is complete.

Restart required 

To finish the upgrade, a restart is required. 
If you select 'y' the system will be restarted. 
複製代碼

待系統重啓以後,登錄系統會看到系統已經成功升級爲 Ubuntu 19.10:

Welcome to Ubuntu 19.10 (GNU/Linux 5.3.0-46-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 * Ubuntu 20.04 LTS is out, raising the bar on performance, security,
   and optimisation for Intel, AMD, Nvidia, ARM64 and Z15 as well as
   AWS, Azure and Google Cloud.

     https://ubuntu.com/blog/ubuntu-20-04-lts-arrives
複製代碼

咱們將 /etc/update-manager/release-upgrades 文件中數值修改成 Prompt=lts ,再次執行 do-release-upgrade -d 就能夠開始第二階段的升級了,操做過程和上面沒有區別,一杯水的功夫,服務端再次重啓,Ubuntu 20.04 LTS 就升級完畢啦。

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.4.0-26-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

 * Ubuntu 20.04 LTS is out, raising the bar on performance, security,
   and optimisation for Intel, AMD, Nvidia, ARM64 and Z15 as well as
   AWS, Azure and Google Cloud.

     https://ubuntu.com/blog/ubuntu-20-04-lts-arrives
複製代碼

驗證完畢逐版本升級,咱們試試一步到位的跨版本升級。

Ubuntu 18.04 跨版本升級 Ubuntu 20.04

跨版本升級至關因而逐版本升級的「偷懶版」,偷懶固然要到極致,升級軟件包也可使用 apt full-upgrade -y 這個命令來作。

和逐版本升級不一樣的是,咱們再也不須要修改 release-upgrades 配置文件,在升級前只須要確認 /etc/update-manager/release-upgrades 文件的數值是否設置爲 lts 便可。

確認數值正確後,執行 do-release-upgrade -d ,根據本身需求進行升級配置選擇便可,「一路 Next」 以後,Ubuntu 20.04 就升級完畢啦。

最後

距離將全部機器升級到 18.04 剛巧一年, Ubuntu 20.04 LTS 的到來,算是一個驚喜。

通常狀況下,咱們使用 update, upgrade, do-release-upgrade 組合技應該就能順暢完成升級,可是在當前時間點,官網還未徹底正式提供 release 升級方案,因此就有了這篇文章。

呃,促成這篇文章還有一個緣由,回家後直接睡覺忘記喂貓,被毛孩子抗議叫醒...

--EOF


我如今有一個小小的折騰羣,裏面彙集了一些喜歡折騰的小夥伴。

在不發廣告的狀況下,咱們在裏面會一塊兒聊聊軟件、HomeLab、編程上的一些問題,也會在羣裏不按期的分享一些技術沙龍的資料。

喜歡折騰的小夥伴歡迎掃碼添加好友。(請註明來源和目的,不然不會經過審覈)

關於折騰羣入羣的那些事

相關文章
相關標籤/搜索