ssh远程升级Ubuntu20.04到Ubuntu 22.04

ssh远程升级Ubuntu20.04到Ubuntu 22.04

陈拓 2024/10/16-2024/10/26

1. 简介

本文介绍了如何通过ssh将Ubuntu系统从20.04升级到22.04。

在进行系统升级之前,建议备份重要数据,以防升级过程中出现问题。

2. 更新当前系统

  • 硬件系统架构

  • 当前操作系统版本

lsb_release -a

  • 更新源软件列表

sudo apt update

  • 升级系统中所有已安装的软件包

sudo apt upgrade

  • 升级系统中的软件包并处理依赖关系

sudo apt dist-upgrade

dist-upgrade命令通常用于系统升级,因为它能够处理更复杂的依赖关系和软件包之间的冲突。然而,它也可能会引起系统配置的较大变化,因此在运行sudo apt dist-upgrade之前,确保备份重要数据是一个好习惯。

3. 清理不再需要的包

sudo apt autoremove

sudo apt clean

4. 准备升级

安装update-manager-core包,它提供了do-release-upgrade命令:

sudo apt install update-manager-core

5. 配置升级行为

确保/etc/update-manager/release-upgrades中的Prompt设置为lts,以便升级到下一个LTS版本。

sudo nano /etc/update-manager/release-upgrades

默认提示和升级行为的有效选项:

  • never

从不检查或允许升级到新版本。

  • normal

检查是否有新版本可用。如果发现多个新版本,版本升级程序将尝试升级到在当前正在运行版本之后紧接着的那个受支持的版本。无论这个版本是否是LTS版本。

  • lts

检查是否有新的长期支持版LTS可用。升级程序将尝试升级到当前运行的LTS版本之后的第一个可用LTS版本。请注意,如果使用此选项,并且当前运行的版本本身不是LTS版本,升级程序将认为用户的操作意图实际应为normal。

6. 开始升级

这个命令将启动升级向导,它会检查新的发行版,然后指导你完成升级过程。

  • 运行以下命令来开始升级过程

sudo do-release-upgrade

  • 风险提示及选择

Checking package manager

正在检查软件包管理器,Ubunt常用的是apt。在升级操作前先对软件包管理器的状态、配置等进行检查,以确保后续升级流程能正常进行。

Continue running under SSH?

询问是否要在SSH连接下继续进行当前的操作。因为接下来的提示信息会阐述在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.

当前的会话似乎是通过SSH运行的。提示不建议通过SSH进行升级操作,原因是如果在升级过程中出现失败的情况,后续要恢复系统会变得更加困难。这是因为通过SSH远程操作时,一旦升级出现严重问题导致系统无法正常工作,远程修复的难度会比在本地直接操作要大得多,比如可能无法方便地进入系统进行故障排查、修复文件系统等操作。

If you continue, an additional ssh daemon will be started at port '1022'.

如果选择继续在SSH下进行升级操作,那么系统将会在端口1022启动一个额外的SSH守护进程。这样做的目的可能是为了在升级过程中万一出现问题,能够通过这个新启动的SSH连接尝试进行一些补救操作或者查看系统状态等,但这也只是一种相对有限的保障措施,毕竟升级失败后的恢复仍然可能很困难。

Do you want to continue?

Continue [yN] y

再次询问你是否真的想要继续在SSH下进行升级操作,输入y(表示是,继续)或者N(表示否,不继续)。我们的回答是y,表示我们决定不顾前面提到的风险,仍然要在SSH下继续进行升级操作。

  • 启动额外的SSH守护进程

Starting additional sshd

正在启动额外的SSH守护进程(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.

为了在升级出现失败情况时能够更方便地进行恢复操作,将会在端口1022启动一个额外的SSH守护进程。如果正在运行的常规SSH连接出现任何问题(比如在升级过程中由于系统故障导致原来的SSH连接中断等情况),你仍然可以通过连接到这个新启动的位于端口1022的SSH守护进程来尝试对系统进行一些操作,比如查看系统状态、尝试修复等。

If you run a firewall, you may 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'

如果你运行了防火墙(在系统上设置了防火墙来控制网络访问),那么可能需要暂时打开端口1022。因为启动这个额外的SSH守护进程并开放对应的端口存在一定潜在风险(比如可能会让未经授权的外部访问有可乘之机等),所以系统不会自动为你打开这个端口。它还给出了一个示例命令(针对使用iptables作为防火墙管理工具的情况),即iptables -I INPUT -p tcp --dport 1022 -j ACCEPT,通过这个命令可以在iptables防火墙规则中添加一条允许TCP协议且目标端口为1022的流量进入的规则,从而打开端口1022。但需要注意的是,在升级完成后,应该根据实际情况考虑是否要恢复防火墙对该端口的原有设置,以保障系统安全。

To continue please press [ENTER]

如果要继续进行后续的操作(继续进行系统升级操作),请按下回车键([ENTER])。

  • 启动升级

Do you want to start the upgrade?

询问用户是否想要启动此次升级操作。这是一个关键的确认步骤,用户需要根据后续提供的关于升级的详细信息来做出决定。

2 installed packages are no longer supported by Canonical. You can still get support from the community.

告知用户当前系统中有2个已经安装的软件包不再受到Canonical(Ubuntu的维护公司)的支持。不过,用户仍然可以从社区(通常指开源社区,比如Ubuntu社区等)获取关于这些软件包的支持。这意味着这2个软件包可能存在后续更新不及时、安全性保障相对较弱等情况,但社区里可能有其他用户或开发者能提供一定的帮助。

7 packages are going to be removed. 156 new packages are going to be installed. 1146 packages are going to be upgraded.

详细说明了此次升级操作将会对系统中的软件包产生的影响。具体如下:

7 packages are going to be removed:有7个现有的软件包将会在升级过程中被删除。这些软件包可能是因为与新版本系统不兼容、已被替代或者不再符合新的系统架构等原因而被移除。

156 new packages are going to be installed:将会安装156个新的软件包。这些新软件包可能是新系统版本所必需的组件,用于提供新的功能、修复漏洞或者提升系统性能等。

1146 packages are going to be upgraded:有1146个现有的软件包将会被升级到新版本。这通常是为了使这些软件包与新的系统版本兼容,并获取最新的功能和修复已知的漏洞等。

You have to download a total of 1,169 M. This download will take about 7 minutes with your connection.

告知用户此次升级需要下载的数据总量为1169兆字节(M)。并且根据用户当前的网络连接速度估算,完成这个下载大概需要7分钟时间。这可以让用户对下载所需的时间和网络资源有一个大致的了解,以便合理安排升级操作的时间。

Installing the upgrade can take several hours. Once the download has finished, the process cannot be canceled.

提醒用户安装此次升级可能需要花费几个小时的时间。而且一旦下载完成,整个升级过程就无法取消了。这是在强调升级过程的耗时性以及一旦开始安装后的不可逆性,用户需要确保在有足够时间且不会被中途打断的情况下启动升级操作。

Continue [yN]  Details [d]:

提供给用户两个操作选项:

Continue [yN]:让用户通过输入y(表示是,继续)或者N(表示否,不继续)来决定是否要继续进行升级操作。

Details [d]:用户如果输入d,则可以查看关于此次升级的更详细的信息,比如具体是哪些软件包要被删除、哪些要被升级、新安装的软件包的功能介绍等。这有助于用户更全面地了解升级情况,以便做出更准确的决策。

继续[yN]详细信息[d]

  • 软件包升级期间是否自动重启

There are services installed on your system which need to be restarted when certain libraries, such as libpam, libc, and libssl, are upgraded.

在你的系统上安装了一些服务,当某些特定的库(比如libpam、libc、libssl等)被升级时,这些服务需要被重启。这是因为这些服务依赖于这些库来正常运行,库升级后可能会改变一些接口或者功能实现,为了保证服务能继续正常运行,就需要重启它们使其重新加载新的库版本。

Since these restarts may cause interruptions of service for the system, you will normally be prompted on each upgrade for the list of services you wish to restart.

由于这些服务的重启可能会导致系统的服务中断,所以通常在每次进行相关库的升级时,系统会提示你列出你希望重启的服务清单。也就是说,系统不会自动重启所有需要重启的服务,而是会先询问你,让你根据实际情况(比如考虑当前系统正在进行的重要业务是否能接受短暂中断等)来决定哪些服务可以重启。

You can choose this option to avoid being prompted; instead, all necessary restarts will be done for you automatically so you can avoid being asked questions on each library upgrade.

你可以选择这个选项(即接下来询问的那个选项)来避免被提示(关于要重启哪些服务的提示)。相反,如果选择了这个选项,那么所有必要的重启操作将会自动为你完成,这样你就可以避免在每次进行库升级时都被问到相关问题。

Restart services during package upgrades without asking?

询问用户是否要在软件包升级期间(特别是涉及到上述提到的那些重要库升级时)不经过询问就自动重启相关服务。用户需要通过输入合适的回答(比如y表示是,同意自动重启;N表示否,不同意自动重启)来做出选择。

  • 配置文件resolved.conf的处理

这段提示信息是在系统检测到/etc/systemd/resolved.conf这个配置文件自安装以来发生了变化,并且软件包分发商(通常是指操作系统或相关软件包的维护者)已经发布了该配置文件的更新版本的情况下出现的。它主要是在询问用户针对这种情况想要采取的处理方式。

Configuration file '/etc/systemd/resolved.conf'

配置文件/etc/systemd/resolved.conf

这个文件通常用于系统的域名解析相关的配置,比如设置DNS服务器地址、域名解析策略等。

==> Modified (by you or by a script) since installation.

该配置文件自安装以来已经被修改过了,修改者可能是你自己,也可能是某个在系统中运行的脚本。

==> Package distributor has shipped an updated version.

表示软件包分发商(如操作系统的维护团队等)已经提供了该配置文件的一个更新版本。这可能是因为修复了一些已知的问题、优化了配置或者适应了新的系统需求等原因而发布了新的版本。

What would you like to do about it?  Your options are:

询问用户对于这种配置文件存在修改版本和更新版本的情况想要做些什么。接下来列出了用户可以选择的几种操作选项。

Y or I  : install the package maintainer's version

如果用户选择输入Y或者I,那么系统将会安装软件包维护者(即分发商)提供的该配置文件的版本。这意味着将会覆盖掉你当前已经修改过的版本,采用分发商认为的标准配置。

N or O  : keep your currently-installed version

若用户选择输入N或者O,则系统会保留你目前已经安装的该配置文件的版本。也就是维持你之前所做的修改或者脚本改动后的状态,不采用分发商提供的更新版本。

D     : show the differences between the versions

当用户输入D时,系统会展示出你当前安装的版本和软件包分发商提供的更新版本之间的差异。这样你可以直观地看到两个版本在内容上的不同之处,以便更好地决定是否要采用新的版本。

Z     : start a shell to examine the situation**:

如果用户输入Z,系统会启动一个shell(命令行环境),让你能够在这个环境中进一步深入地检查当前的情况。比如你可以在这个shell中查看配置文件的具体内容、相关的系统设置、运行一些与该配置文件相关的命令等,以便更全面地了解情况并做出合适的决策。

The default action is to keep your current version.

指出默认的操作是保留你当前的版本。也就是说,如果用户不做任何选择(直接按回车键等),系统将会按照这个默认操作执行,即维持现有的/etc/systemd/resolved.conf文件的状态。

*** resolved.conf (Y/I/N/O/D/Z) [default=N]?

再次明确询问用户对于/etc/systemd/resolved.conf这个配置文件的处理方式,让用户通过输入Y、I、N、O、D、Z中的一个字符来做出选择,并且提示用户如果不做选择的话,默认会按照N(即保留当前版本)的方式处理。

  • 配置文件sshd_config的处理

A new version (/tmp/tmp.aAfEEQVDr1) of configuration file /etc/ssh/sshd_config is available, but the version installed currently has been locally modified.

/etc/ssh/sshd_config配置文件有一个新的版本,其文件路径为/tmp/tmp.aAfEEQVDr1。然而,目前已经安装并且正在使用的该配置文件版本在本地被修改过了。这意味着可能是用户自己或者本地运行的某些程序对现有的sshd_config文件做了改动,现在又出现了一个软件包分发商提供的新的版本。

What do you want to do about modified configuration file sshd_config?

询问用户对于这个被修改过的sshd_config配置文件想要采取什么样的处理方式。

install the package maintainer's version

如果用户选择此项,系统将会安装软件包维护者(通常是指操作系统或相关软件包的分发商)提供的sshd_config配置文件的版本。这意味着将会覆盖掉当前在本地已经被修改过的版本,采用分发商认为的标准配置。不过这样做可能会丢失之前在本地所做的修改内容。

keep the local version currently installed(我选择这个)

若用户选择此项,系统会保留当前已经安装的在本地被修改过的sshd_config版本。也就是维持之前在本地所做的修改状态,不采用软件包分发商提供的新的版本。

show the differences between the versions

当用户选择此项,系统会展示出当前安装的在本地被修改过的版本和软件包分发商提供的新的版本之间的差异。这样用户可以直观地看到两个版本在内容上的不同之处,以便更好地决定是否要采用新的版本或者进一步了解两个版本的变化情况。

show a side-by-side difference between the versions

与show the differences between the versions类似,也是展示两个版本之间的差异,但可能是以一种并排对比的方式呈现,让用户能更清晰地看到每个部分在两个版本中的不同情况,便于更细致地比较和分析。

show a 3-way difference between available versions

此项会展示出所有可用版本之间的三方差异。这里的可用版本可能除了当前安装的本地修改版和软件包分发商提供的新版之外,还可能涉及到其他相关的版本(比如之前备份的某个版本等),通过这种三方对比可以更全面地了解各个版本之间的关系和变化情况。

do a 3-way merge between available versions

用户选择此项后,系统会尝试对所有可用版本进行三方合并操作。也就是综合考虑各个版本的特点和内容,将它们合并成一个新的版本,可能会保留各个版本中的有用部分,以得到一个更优化的配置文件版本。不过这种合并操作可能会比较复杂,需要根据具体情况进行调整和判断。

start a new shell to examine the situation

如果用户选择此项,系统会启动一个新的shell(命令行环境),让用户能够在这个环境中进一步深入地检查当前的情况。比如用户可以在这个 shell中查看sshd_config文件的具体内容、相关的系统设置、运行一些与该配置文件相关的命令等,以便更全面地了解情况并做出合适的决策。

7. 重启系统

升级完成后,系统会提示你重启。重启你的服务器以完成升级过程:

  • 检查升级结果

重启后,你可以通过以下命令检查你的Ubuntu版本:

lsb_release -a

这将显示你的系统信息,确认它现在是Ubuntu 22.04。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/486261.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

新手SEO指南:如何从零开始优化网站实现流量增长

内容概要 在这一部分,我们将简要概述新手在进行SEO优化时需要掌握的一些关键内容。SEO(搜索引擎优化)是一个复杂而多层次的过程,对网站流量的提升至关重要。无论您是刚刚踏入这一领域的新手,还是希望进一步提升网站性…

FPGA实战篇(呼吸灯实验)

1.呼吸灯简介 呼吸灯采用 PWM 的方式,在固定的频率下,通过调整占空比的方式来控制 LED 灯亮度的变化。 PWM(Pulse Width Modulation ),即脉冲宽度调制,它利用微处理器输出的 PWM 信号,实现对…

使用 OpenCV 进行 Android 开发

在本节中,我们将创建一个简单的应用程序,它除了加载 OpenCV 之外什么都不做。在下一节中,我们将扩展它以支持相机。 除了这个说明,你还可以使用一些视频指南,例如这个 打开 Android Studio 并选择Empty Views Activi…

项目实例_FashionMNIST_CNN

前言 提醒: 文章内容为方便作者自己后日复习与查阅而进行的书写与发布,其中引用内容都会使用链接表明出处(如有侵权问题,请及时联系)。 其中内容多为一次书写,缺少检查与订正,如有问题或其他拓展…

Autosar FO时间分析和设计规范导读

一、规范功能概述 “Timing Analysis and Design AUTOSAR FO R24 - 11” 文档主要聚焦于汽车电子系统开发中的定时分析与设计,详细阐述了相关概念、方法、用例及涉及的各项要素,旨在为汽车电子系统的开发提供全面且系统的定时分析指导,以确保…

使用 libssh2_session_set_timeout 设置 SSH 会话超时时间

使用 libssh2_session_set_timeout 设置 SSH 会话超时时间 函数原型参数说明返回值示例代码注意事项libssh2_session_set_timeout 是 libssh2 库中的一个函数,用于设置 SSH 会话的超时时间。这对于防止网络延迟或连接中断导致的长时间挂起非常有用。 函数原型 int libssh2_se…

001 LVGL PC端模拟搭建

01 LVGL模拟器介绍 使用PC端软件模拟LVGL运行,而不需要任何嵌入式硬件 环境搭建:codeblocks-20.03mingw-setup 正常安装流程即可 工程获取:LVGL官网-> github仓库 本地安装包下载资源包 工程模版和软件安装包 补充:…

开源ISP介绍(2)————嵌入式Vitis搭建

Vivado搭建参考前一节Vivado基于IP核的视频处理框架搭建: 开源ISP介绍(1)——开源ISP的Vivado框架搭建-CSDN博客 导出Hardware 在vivado中导出Hardware文件,成功综合—实现—生成比特流后导出硬件.xsa文件。(注意导…

人工智能-自动驾驶领域

目录 引言自动驾驶与人工智能的结合为什么自动驾驶领域适合发表文章博雅智信的自动驾驶辅导服务结语 引言 自动驾驶技术的崛起是当代交通行业的一场革命。通过结合先进的人工智能算法、传感器技术与计算机视觉,自动驾驶不仅推动了技术的进步,也使得未来…

Kubernetes 深入浅出系列 | 容器编排与作业调度之Deployment

目录 概述Deployment 的更新原理实验 概述 Kubernetes 中,Deployment 控制器是用于管理应用程序生命周期的核心对象。Deployment 通过管理 ReplicaSet 来间接控制 Pod,确保在任何时刻都能维持指定数量的 Pod 副本。这种间接管理使得 Deployment 功能比 …

Java——异常机制(上)

1 异常机制本质 (异常在Java里面是对象) (抛出异常:执行一个方法时,如果发生异常,则这个方法生成代表该异常的一个对象,停止当前执行路径,并把异常对象提交给JRE) 工作中,程序遇到的情况不可能完美。比如…

如何查看电脑的屏幕刷新率?

1、按一下键盘的 win i 键,打开如下界面,选择【系统】: 2、选择【屏幕】-【高级显示设置】 如下位置,显示屏幕的刷新率:60Hz 如果可以更改,则选择更高的刷新率,有助于电脑使用起来界面更加流…

WAT绕过姿势

一.空格字符绕过 两个空格代替⼀个空格,⽤ Tab 代替空格,%a0空格 %20 %09 %0a %0b %0c %0d %a0 %00 /**/ /*!*/ select * from users where id1 /*!union*//*!select*/1,2,3,4; %09 TAB 键(⽔平)%0a 新建⼀⾏%0c 新的⼀⻚%0d …

Ubuntu 环境美化

一、终端选择 zsh 参考文章使用 oh-my-zsh 美化终端 Oh My Zsh 是基于 zsh 命令行的一个扩展工具集,提供了丰富的扩展功能。 先安装zsh再安装Oh My Zsh 1.zsh安装 sudo apt-get install zsh 2.设置默认终端为 zsh chsh -s /bin/zsh 3.安装 oh-my-zsh 官网&…

QT的ui界面显示不全问题(适应高分辨率屏幕)

//自动适应高分辨率 QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);一、问题 电脑分辨率高,默认情况下,打开QT的ui界面,显示不全按钮内容 二、解决方案 如果自己的电脑分辨率较高,可以尝试以下方案:自…

docker报错ls: cannot access SURF: Transport endpoint is not connected

docker挂载nfs文件夹/CMADAAS/DATA。它大部分时间都可用,只是有时会断开连接。重新挂载后,实际挂载的文件夹将再次可用。 问题是我将此文件夹放入docker卷中以使其可供我的应用程序使用:/SURF。当我启动容器时,该卷可用。 但是&…

AJAX三、XHR,基本使用,查询参数,数据提交,promise的三种状态,封装-简易axios-获取省份列表 / 获取地区列表 / 注册用户,天气预报

一、XMLHttpRequest基本使用 XMLHttpRequest(XHR)对象用于与服务器交互。 二、XMLHttpRequest-查询参数 语法: 用 & 符号分隔的键/值对列表 三、XMLHttpRequest-数据提交 核心步骤 : 1. 请求头 设置 Content-Type 2. 请求体 携带 符合要求 的数…

【Ubuntu】URDC(Ubuntu远程桌面助手)安装、用法,及莫名其妙进入全黑模式的处理

1、简述 URDC是Ubuntu远程桌面助手的简称。 它可以: 实时显示桌面:URDC支持通过Windows连接至Ubuntu设备(包括x86和ARM架构,例如Jetson系列、树莓派等)的桌面及光标。远程操控双向同步剪切板多客户端连接:同一Ubuntu设备最多可同时被三台Windows客户端连接和操控,适用于…

MVC基础——市场管理系统(一)

文章目录 项目地址一、创建项目结构1.1 创建程序以及Controller1.2 创建View1.3 创建Models层,并且在Edit页面显示1.4 创建Layou模板页面1.5 创建静态文件css中间件二、Categories的CRUD2.1 使用静态仓库存储数据2.2 将Categorie的列表显示在页面中(List)2.3 创建_ViewImport.…

KV Shifting Attention Enhances Language Modeling

基本信息 📝 原文链接: https://arxiv.org/abs/2411.19574👥 作者: Mingyu Xu, Wei Cheng, Bingning Wang, Weipeng Chen🏷️ 关键词: KV shifting attention, induction heads, language modeling📚 分类: 机器学习, 自然语言处…