Ubuntu停止维护版本的软件源配置和系统升级方法

这里以Ubuntu 20.10版本为例(当前是2022.2.14,该版本已经停止维护),我们现在需要正常使用该版本,并且期待升级到21.10版本,我们需要

  1. 配置正确是软件源
  2. 升级该版本

配置正确的软件源

配置国内镜像源

我们一般在国内会采用清华大学的软件源,不过可惜的是,清华的软件源没有提供old-released版本(笔者反正没找到…),也就是一旦版本停止维护,我们就不能用该镜像源进行update和upgrade了。

我们可以使用中科大的镜像源,或者南京大学的也行。

我们将/etc/apt/sources.list文件进行镜像源替换,注意备份

deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ 版本名称 main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ 版本名称-security main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ 版本名称-updates main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ 版本名称-proposed main restricted universe multiverse
deb http://mirrors.ustc.edu.cn/ubuntu-old-releases/ubuntu/ 版本名称-backports main restricted universe multiverse

这里我们的20.10版本名称groovy,替换掉即可,其他版本类似。

这样就可以正常使用sudo apt-get update && sudo apt-get upgrade了,不过由于版本不再维护,强烈建议升级版本

配置原始镜像源

如果你不需要配置国内镜像,可以使用官方提供的

## EOL upgrade sources.list
# Required
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ CODENAME-security main restricted universe multiverse# Optional
#deb http://old-releases.ubuntu.com/ubuntu/ CODENAME-backports main restricted universe multiverse

CODENAME替换成groovy即可。

注意!如果你要升级系统版本,我们这里必须使用官方提供的软件源!否则会报错!目前没有发现可用于升级系统的old-released国内镜像源 (我也不知道为什么,实践结果确实是这样。)

切换成新的软件源后必须执行sudo apt update && sudo apt upgrade.

升级到Ubuntu 21.10

20.10 --> 21.04

需要注意的是,20.10 不能直接升级到21.10,需要20.10 --> 21.04 --> 21.10才可以,因此需要先升级到21.04。

这里我们需要参考EOLUpgrades这篇文章。

安装两个东西

sudo apt-get install update-manager-core update-manager

需要设置为更新到任意新版本,而不是仅仅更新到LTS版本。

在这里插入图片描述

打开这个,再设置,一般默认其实不用改。

在这里插入图片描述

设置好之后,我们根据这个网站,找到我们要升级的目标版本。在这里插入图片描述
不能直接升级,因为直接升级默认升级到最新的,因此需要手动下载upgrader

我们依次执行

# Downloads the upgrader, check the link above for the URL of the file for your release
wget http://archive.ubuntu.com/ubuntu/dists/hirsute-updates/main/dist-upgrader-all/current/hirsute.tar.gz
# Extract it into a new directory
mkdir upgrader
tar -xaf hirsute.tar.gz -C upgrader
cd upgrader
# Run the executable, the name changes based on the release
sudo ./hirsute

注意再说一遍,必须使用官方提供的old-releade软件源才能正常升级

这里因为是官方源,速度会很慢,还可能下载失败,如果失败了就重新执行一遍,会接着上次的来,是有缓存的。

这样根据提示执行就能够成功升级到Ubuntu 21.04了,具体提示的信息,这里就不赘述了,大家根据说明自己选择即可。

接下来会重启。

21.04 --> 21.10

然后就可以使用清华大学的Ubuntu 21.04镜像源(当前该版本没有停止维护)

之后执行

sudo apt update && sudo apt upgrade
sudo do-release-upgrade

就可以更新到21.10了。

最后,这里介绍的方法适用于很多不受支持的版本,具体的细节可能需要你再查询其他资料,忠告请尽量不要使用短期支持版本,它的生命周期很短,如果你没有注意其不受支持的期限。过期之后可能会带来一些麻烦

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

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

相关文章

diff and colordiff on Ubuntu

在Ubuntu中使用diff来对比文件差异,但是不是很好用,尤其是着色方面,用起来很麻烦,因此可以安装colordiff。 我们有两个文件file1和file2,使用命令 colordiff file1 file2 -y -B -W 140就可以对比文件差异&#xff0c…

帮助你成为高手的视频和资料

1. 为什么大多数人不会真正成功 博客链接 视频链接 2. TED演讲:真正拉开你与周围人之家差距的,是自学能力 视频链接 3 埃隆马斯克:第一性原理,少用类比,类比多了就不能抓住本质了 4 如何成为一个顶尖高手 文章链…

【数据结构】快速排序非递归算法及其改进

在学数据结构中排序这一章节的时候,有一道有关快速排序的作业题描述如下: 按下述要求编写快速排序的非递归算法: 定义一个栈(或队列),把整个序列的上、下界入栈(或队列)。当栈&#…

【数据结构】对快速排序原理的理解(图解,通俗易懂)

学习数据结构时,书本上直接给出了快速排序的过程以及代码,对其原理解释的不够详细,琢磨代码后,发现其原理其实十分简单,简述如下: (1)在待排序列中找一个“中枢元素”(书…

【离散数学】图论基础知识

文章目录1 图的基本概念2 图的连通性3 图的矩阵表示4 几种特殊的图4.1 二部图4.2 欧拉图4.3 哈密顿图4.4 平面图5 无向树6 生成树1 图的基本概念 无向图: 简而言之,边不带方向的图就是无向图。 有向图: 简而言之,边带方向的图就…

【运筹与优化】单纯形法解线性规划问题(matlab实现)

文章目录单纯形法步骤:1.将线性规划问题化为标准形式2.列出单纯形表3.进行最优性检验4.从一个基可行解转换到另一个目标值更大的基可行解,列出新的单纯形表5.重复3、4直到计算结束为止举例单纯形法matlab实现单纯形法是一种解线性规划问题的算法&#xf…

【Linux系统编程学习】 GCC编译器

此为牛客网Linux C课程1.2&1.3的课程笔记。 0. 简介 1. gcc和g的安装 sudo apt install gcc g2. gcc常用参数选项 3. gcc工作流程 首先是预处理器对源代码进行预处理(后缀名.i),主要做以下事情: 把头文件加入到源代码当中删…

Spring5底层原理之BeanFactory与ApplicationContext

目录 BeanFactory与ApplicationContext BeanFactory ApplicationContext 容器实现 BeanFactory实现 ApplicationContext实现 ClassPathXmlApplicationContext的实现 AnnotationConfigApplicationContext的实现 AnnotationConfigServletWebServerApplicationContext的实…

【Linux系统编程学习】 静态库的制作与使用

此为牛客网Linux C课程 1.4&1.5 的课程笔记。 0. 关于静态库与动态库 库就是封装好的、可服用的代码,而静态和动态是指链接。 这节课讲的是静态库,是指在链接阶段,会将汇编生成的目标文件.o与引用到的库一起链接打包到可执行文件中&…

【Linux系统编程学习】 动态库的制作与使用

此为牛客网Linux C课程1.6&1.7 的课程笔记。 1. 动态库命名规则 2. 动态库的制作 第一步,用gcc编译生成.o目标文件,注意要用-fpic参数生成与位置无关的代码; 第二步,用gcc的-shared参数生成动态库。 涉及到的两个参数之前学过…

【Linux系统编程学习】 静态库与动态库的对比与总结

此为牛客网Linux C课程 1.9 的课程笔记。 1. 前几节课知识总结 程序编译成为可执行文件的过程: 静态库制作过程: 动态库制作过程: 2. 静态库的优缺点: 3. 动态库的优缺点: 更多可参考:吴秦&#xff1…

【Linux系统编程学习】 Makefile简单入门

此为牛客网Linux C课程1.10&1.11&1.12 的课程笔记。 0. Makefile介绍 1. Makefile文件命名与规则 示例: 使用vim编写如下名为Makefile的文件: app:sub.o add.o mult.o div.o main.ogcc sub.o add.o mult.o div.o main.o -o appsub.o:sub.cgcc …

【Linux系统编程学习】 GDB调试器的简单使用

此为牛客网Linux C课程 1.13&1.14&1.15&1.16 的课程笔记。 0. GDB简介 1. 准备工作 想要使用gdb调试,首先需要用gcc的-g参数生成可执行文件,这样才能在可执行文件中加入源代码信息以便调试,但是注意这并不是将源文件嵌入到可执行…

【Linux系统编程学习】C库IO函数与系统IO函数的关系

此为黑马Linux课程笔记。 1. C标准IO函数工作流程 如图,以C库函数的fopen为例,其返回类型是FILE类型的指针,FILE类型包含很多内容,主要包含三个内容:文件描述符、文件读写指针的位置和I/O缓冲区的地址。 文件描述符&…

【Linux系统编程学习】 文件描述符

此为牛客网Linux C课程1.19课程笔记。 1. 文件描述符表 如图,我们知道每个进程都有其虚拟地址空间(0~4G),其中3 ~ 4G部分为内核区。进程的进程控制块保存就在内核区,而PCB中维护一个打开文件描述符表,每个…

【Linux系统编程学习】Linux系统IO函数(open、read、write、lseek)

此为牛客网Linux C课程1.20课程笔记。 1.open函数 open函数有两种&#xff0c;分别是打开一个已经存在的文件和创建并打开一个不存在的文件。 #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h>// 打开一个已经存在的文件 int open(const…

【Linux系统编程学习】Linux进程控制原语(fork、exec函数族、wait)

此为牛客Linux C和黑马Linux系统编程课程笔记。 1. fork函数 1.1 fork创建单个子进程 #include<unistd.h> pid_t fork(void);作用&#xff1a;创建一个子进程。 pid_t类型表示进程ID&#xff0c;但为了表示-1&#xff0c;它是有符号整型。(0不是有效进程ID&#xff0…

【Linux系统编程学习】匿名管道pipe与有名管道fifo

此为牛客Linux C和黑马Linux系统编程课程笔记。 0. 关于进程通信 Linux环境下&#xff0c;进程地址空间相互独立&#xff0c;每个进程各自有不同的用户地址空间。任何一个进程的全局变量在另一个进程中都看不到&#xff0c;所以进程和进程之间不能相互访问&#xff0c;要交换…

【Linux系统编程学习】信号、信号集以其相关函数

此为牛客Linux C和黑马Linux系统编程课程笔记。 文章目录0. 信号的概念1. Linux信号一览表2. 信号相关函数3. kill函数4. raise函数5. abort函数6. alarm函数7. setitimer函数8. signal函数9. 信号集10. 自定义信号集相关函数11. sigprocmask函数12. sigpending函数13. sigacti…

【Linux系统编程学习】父进程捕获SIGCHLD信号以处理僵尸进程

配合之前说过的sigaction函数和waitpid函数&#xff0c;我们可以解决子进程变成僵尸进程的问题。 先看如下示例程序&#xff1a; #include <sys/time.h> #include <sys/types.h> #include <stdio.h> #include <stdlib.h> #include <signal.h> …