写这个完全是因为最近在 Ubuntu 上面踩的坑有点多了。

Ubuntu

Ubuntu 是基于Debian,以桌面应用为主的Linux发行版。Ubuntu有三个正式版本,包括桌面版、服务器版及用于物联网设备和机器人的Core版。前述三个版本既能安装于实体电脑,也能安装于虚拟电脑。从17.10版本开始,Ubuntu以GNOME为默认桌面环境。 Ubuntu是著名的Linux发行版之一,也是目前最多用户的Linux版本。Ubuntu每六个月(即每年的四月与十月)发布一个新版本,长期支持(LTS)版本每两年发布一次。普通版本一般只支持9个月,但LTS版本一般能提供5年的支持。

这个一直存在于 wiki 的介绍我现在才仔细地去看了看。

Ubuntu 应该算是我最喜欢用的系统了,连 Windows 都无法撼动它的地位。这里 wiki 也讲了,它主要分三个发行版:桌面版(desktop),服务器版(server),和 Core 版。我们用的最多的应该是前两个,然后就是它版本号的一些说明了,它每半年发布一个小版本(只提供9个月的支持),两年发布一个长期版本(LTS),提供五年支持。

然后每个版本都有对应的一个有趣别名

版本 别名(codename) 发布日期
4.10 Warty Warthog(长疣的疣猪) 2004年10月20日
5.04 Hoary Hedgehog(灰白的刺猬) 2005年4月8日
5.10 Breezy Badger(活泼的獾) 2005年10月13日
6.06 Dapper Drake(整洁的公鸭) 2006年6月1日(LTS)
6.10 Edgy Eft(急躁的水蜥) 2006年10月6日
7.04 Feisty Fawn(坏脾气的小鹿) 2007年4月19日
7.10 Gutsy Gibbon(勇敢的长臂猿) 2007年10月18日
8.04 Hardy Heron(耐寒的苍鹭) 2008年4月24日(LTS)
8.10 Intrepid Ibex (勇敢的野山羊) 2008年10月30日
9.04 Jaunty Jackalope(得意洋洋的怀俄明野兔) 2009年4月23日
9.10 Karmic Koala(幸运的考拉) 2009年10月29日
10.04 Lucid Lynx(清醒的猞猁) 2010年4月29日
11.10 Oneiric Ocelot(梦幻的豹猫) 2010年10月13日
11.04 Natty Narwhal(敏捷的独角鲸) 2011年4月28日
12.04 Precise Pangolin(精准的穿山甲) 2012年的4月26日(LTS)
12.10 Quantal Quetzal(量子的绿咬鹃) 2012年的10月20日
13.04 Raring Ringtail(铆足了劲的猫熊) 2013年4月25日
13.10 Saucy Salamander(活泼的蝾螈) 2013年10月17日
14.04 Trusty Tahr (可靠的塔尔羊) 2014年4月18日 (LTS)
14.10 Utopic Unicorn(乌托邦独角兽) 2014年10月23日
15.04 Vivid Vervet (活泼的小猴) 2015年4月
15.10 Wily Werewolf (狡猾的狼人) 2015年10月
16.04 Xenial Xerus (好客的非洲地松鼠) 2016年4月 (LTS)
16.10 Yakkety Yak(牦牛) 2016年10月
17.04 Zesty Zapus(开心的跳鼠) 2017年4月
17.10 Artful Aardvark(机灵的土豚) 2017年10月
18.04 Bionic Beaver(仿生海狸) 2018年4月(LTS)
18.10 Cosmic Cuttlefish (宇宙般大小的乌贼) 2018年10月
19.04 Disco Dingo 2019年4月
19.10 Eoan Ermine 2019年10月
20.04 Focal Fossa 2020年4月
20.10 Groovy Gorilla 2020年10月

然后我们再来看看 /etc/apt/source.list 的结构。

取出一行

1
deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse

首先就是 deb 然后后面跟个 url,这里有一个 jammy 就是 ubuntu 的别名,所以我们是哪个版本就用哪个版本的源就可以了。

然后呢,为什么报会 404 错误,如果它决定放弃一个版本(停止支持)了,那么你就找不到它的源,自然无法更新,如果我们需要更新一个 Ubuntu,运行 do-release-upgrade 即可,如果不行说明你的包不是最新的,他没法给你更新 Ubuntu,就是这样的,你得先更新软件到它目前能支持的一个范围才能去升级,否则直接不行。

那么究极大法就是:直接换源把它的软件包的别名换成最新的哪个别名,比如说 22.04LTS 版本的别名叫 jammy,那么就把 source.list 的别名一律替换为 jammy就可以了,然后再 apt update 和 apt upgrade,结束之后直接成为新版本的 ubuntu。

建议在用的时候都用 LTS 的,这样升级起来也方便点,我的物理机就是这样的,用了个非 LTS 版本的直接装了一天的系统。