使用命令行将Ubuntu 18.04升级到20.04 LTS

时间:2020-01-09 10:44:01  来源:igfitidea点击:

如何使用命令行选项将Ubuntu Linux版本18.04 LTS服务器升级到20.04 LTS服务器。
如何将Ubuntu 18.04升级到20.04?

LTS是长期支持的缩写。

LTS的新版本每两年发布一次,并在五年的支持和补丁程序中获得五年。

Ubuntu的最新版本是20.04 LTS,代号为" Focal theitroada"。

2020年4月23日发布的Ubuntu 20.04。

本教程将学习如何从apt命令/apt-get命令将现有版本的Ubuntu Linux 18.04 LTS或者19.10升级到Ubuntu 20.04 LTS。

将Ubuntu 18.04升级到20.04的过程

  • 创建服务器或者虚拟机的备份。
  • 通过运行sudo apt update && sudo apt upgrade命令升级所有已安装的Ubuntu 18.04软件包。
  • 通过执行sudo reboot命令重新启动Ubuntu Linux系统。
  • 安装Ubuntu更新工具,运行:sudo apt install update-manager-core
  • 启动升级程序,运行:sudo do-release-upgrade
  • 重新启动服务器,运行:sudo reboot
  • 验证升级

步骤1.进行备份

在执行此操作之前,我没有足够的压力来备份服务器。
记下Ubuntu Linux版本

lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.4 LTS
Release:	18.04
Codename:	bionic

查找并记下Linux内核版本,运行:

uname -mrs

输出示例:

Linux 4.15.0-96-generic x86_64

在AWS上,您可能会看到适用于Ubuntu 18.04 LTS的最新Linux内核版本:

Linux 5.3.0-1019-aws x86_64

步骤2.在Ubuntu 18.04 LTS上升级所有已安装的软件包

现在,您已经备份了,执行以下apt命令以升级Ubuntu 18.04 LTS版本的已安装软件包:

sudo apt update
sudo apt list --upgradable
sudo apt upgrade

您必须在Ubuntu Linux内核和libs更新后重启:

sudo reboot

有关更多信息,请参见Ubuntu 18.04更新安装的软件包以获取安全性。

步骤3. Ubuntu 18.04删除所有未使用的旧内核

运行以下命令将其删除:

sudo apt --purge autoremove

输出示例:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be REMOVED:
  linux-headers-4.15.0-45* linux-headers-4.15.0-45-generic*
  linux-image-4.15.0-45-generic* linux-modules-4.15.0-45-generic*
  linux-modules-extra-4.15.0-45-generic*
0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.
After this operation, 334 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 138353 files and directories currently installed.)
Removing linux-headers-4.15.0-45-generic (4.15.0-45.48) ...
Removing linux-headers-4.15.0-45 (4.15.0-45.48) ...
Removing linux-modules-extra-4.15.0-45-generic (4.15.0-45.48) ...
Removing linux-image-4.15.0-45-generic (4.15.0-45.48) ...

确保您安装了update-manager-core软件包

我们需要在服务器上安装更新管理器,因为它可能安装在您的包装盒上,也可能未安装在您的包装盒上:

sudo apt install update-manager-core

步骤4.将Ubuntu Linux升级到最新的LTS

执行以下命令:

sudo 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.

在这种情况下,请传递-d选项以强制获取最新的受支持发行版:

sudo do-release-upgrade -d

输出示例:

Reading cache
 
Checking package manager
 
Continue running under SSH? 
 
This session appears to be running under ssh. It is not recommended 
to perform a upgrade over ssh currently because in case of failure it 
is harder to recover. 
 
If you continue, an additional ssh daemon will be started at port 
'1022'. 
Do you want to continue? 
 
Continue [yN] y
 
Starting additional sshd 
 
To make recovery in case of failure easier, an additional sshd will 
be started on port '1022'. If anything goes wrong with the running 
ssh you can still connect to the additional one. 
If you run a firewall, you Jan need to temporarily open this port. As 
this is potentially dangerous it's not done automatically. You can 
open the port with e.g.: 
'iptables -I INPUT -p tcp --dport 1022 -j ACCEPT' 
 
To continue please press [ENTER]

找不到有效的镜像警告:

Updating repository information
 
While scanning your repository information no mirror entry for the 
upgrade was found. This can happen if you run an internal mirror or 
if the mirror information is out of date. 
 
Do you want to rewrite your 'sources.list' file anyway? If you choose 
'Yes' here it will update all 'bionic' to 'focal' entries. 
If you select 'No' the upgrade will cancel. 
 
Continue [yN]

只需说"是"即可使用官方UbuntuRepo。

重新启动服务器

我们差不多完成了:

System upgrade is complete.

Restart required 

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

Continue [yN] y
Connection to 52.xxx.yy.zz closed by remote host.
Connection to 52.xxx.yy.zz closed.

换句话说,在要求重新启动该框时,执行" y"进行确认:

步骤5.验证

检查您的Disro版本:

lsb_release -a

输出示例:

No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04 LTS
Release:	20.04
Codename:	focal

还要验证Linux内核版本和其他日志文件:

tail -f /var/log/my-app.log
uname -mrs

输出示例:

Linux 5.4.0-24-generic x86_64

在AWS EC2或者Lightsail服务器上,将看到以下Linux内核:

Linux 5.4.0-1011-aws x86_64

步骤6.启用禁用的第三方Repo

在升级过程中,出于稳定性考虑,将禁用第三方软件存储库。
例如,谷歌浏览器和其他被禁用。
因此,我们需要使用CLI或者GUI工具(称为软件和更新)启用这些工具。
使用cd命令,如下所示:

cd /etc/apt/sources.list.d/

列出这些仓库:

ls -l

让我们使用cat命令查看google-chrome.list:

cat google-chrome.list

输出示例:

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You Jan comment out this entry, but any other modifications Jan be lost.
# deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main # disabled on upgrade to focal

编辑文件:

sudo nano google-chrome.list
## 或者
sudo vim google-chrome.list

现在,通过删除#来更新文件,使其显示如下:

### THIS FILE IS AUTOMATICALLY CONFIGURED ###
# You Jan comment out this entry, but any other modifications Jan be lost.
deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main # disabled on upgrade to focal

在vim文本编辑器中保存并关闭文件。
最后更新您的apt仓库:

sudo apt update
sudo apt upgrade

步骤7.使用GUI方法将Ubuntu升级到20.04 LTS Focal theitroada桌面系统

让我们看看如何在桌面系统上进行升级。

  • 首先,保留所有重要数据的备份。
  • 在系统设置中打开"软件和更新"设置。
  • 选择第三个选项卡,称为"更新"。点击放大
  • 如果您使用的是18.04 LTS,则将"通知我新的Ubuntu版本"下拉菜单设置为"对于长期支持版本";如果您使用的是19.10,请将其设置为"对于任何新版本"。
  • 打开终端并输入以下命令:update-manager -c -d
  • 接下来,更新管理器应打开,并告诉您Ubuntu 20.04 LTS现在可用。如果update-manager -c -d命令无法运行,请运行以下命令:/usr/lib/ubuntu-release-upgrader/check-new-release-gtk
  • 点击"升级",然后按照屏幕上的说明进行操作。

Ubuntu do-release-upgrade命令行选项

-h显示帮助消息并退出。
-V显示版本并退出。
-d如果使用最新支持的版本,请升级到开发版本。
--data-dir = DATA_DIR包含数据文件的目录
-p尝试使用$distro-proposed
-m MODE以特殊的升级模式运行。当前支持桌面系统的常规升级桌面和服务器系统的服务器。
-f FRONTEND运行指定的前端。您可以使用DistUpgradeViewText,DistUpgradeViewGtk和DistUpgradeViewKDE FRONTEND。
-c仅检查是否有新的发行版,并通过退出代码报告结果。
--allow-third-party尝试在启用了第三方镜像和存储库的情况下进行升级,而不要注释掉它们。
-q安静地工作。