我在这个问题上卡了一段时间。基本上,我有一台运行 20.04.6 的服务器,我一直在尝试将其升级到当前的 LTS。唯一的问题是,它do-release-upgrade
从 apt 源列表中删除了官方 Ubuntu 源,然后拒绝继续升级,因为它找不到其必需的软件包。
/etc/apt/sources.list
以下是我的文件的相关内容:
:~# cat /etc/apt/sources.list | grep -v ^$ | grep -v ^#
deb http://ftp.ubuntu.com/ubuntu focal main restricted
deb http://ftp.ubuntu.com/ubuntu focal-updates main restricted
deb http://ftp.ubuntu.com/ubuntu focal universe
deb http://ftp.ubuntu.com/ubuntu focal-updates universe
deb http://ftp.ubuntu.com/ubuntu focal multiverse
deb http://ftp.ubuntu.com/ubuntu focal-updates multiverse
deb http://ftp.ubuntu.com/ubuntu focal-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu focal-security main restricted
deb http://security.ubuntu.com/ubuntu focal-security universe
deb http://security.ubuntu.com/ubuntu focal-security multiverse
当我运行时apt update
,我正确地得到了这个:
:~# apt update
Hit:1 http://ppa.launchpad.net/ondrej/apache2/ubuntu focal InRelease
Hit:2 http://ftp.ubuntu.com/ubuntu focal InRelease
Get:3 http://ftp.ubuntu.com/ubuntu focal-updates InRelease [114 kB]
Get:4 http://ftp.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Get:5 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit:6 https://esm.ubuntu.com/apps/ubuntu focal-apps-security InRelease
Hit:7 https://esm.ubuntu.com/apps/ubuntu focal-apps-updates InRelease
Hit:8 https://esm.ubuntu.com/infra/ubuntu focal-infra-security InRelease
Hit:9 https://esm.ubuntu.com/infra/ubuntu focal-infra-updates InRelease
Fetched 336 kB in 3s (104 kB/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
All packages are up to date.
我在文件夹中有一些额外的文件/etc/apt/sources.list.d
,特别是用于esm
存储库的文件。
现在,如果我运行do-release-upgrade
,我将看到以下内容:
Checking package manager
Reading package lists... Done
Building dependency tree
Reading state information... Done
Hit http://ftp.ubuntu.com/ubuntu focal InRelease
Hit http://ftp.ubuntu.com/ubuntu focal-updates InRelease
Get:1 http://ftp.ubuntu.com/ubuntu focal-backports InRelease [108 kB]
Hit http://ppa.launchpad.net/ondrej/apache2/ubuntu focal InRelease
Get:2 http://security.ubuntu.com/ubuntu focal-security InRelease [114 kB]
Hit https://esm.ubuntu.com/apps/ubuntu focal-apps-security InRelease
Hit https://esm.ubuntu.com/apps/ubuntu focal-apps-updates InRelease
Hit https://esm.ubuntu.com/infra/ubuntu focal-infra-security InRelease
Hit https://esm.ubuntu.com/infra/ubuntu focal-infra-updates InRelease
Fetched 222 kB in 0s (0 B/s)
Reading package lists... Done
Building dependency tree
Reading state information... Done
Updating repository information
Third party sources disabled
Some third party entries in your sources.list were disabled. You can
re-enable them after the upgrade with the 'software-properties' tool
or your package manager.
To continue please press [ENTER]
如果我按下 [ENTER]:
Get:1 http://security.ubuntu.com/ubuntu jammy-security InRelease [110 kB]
Get:2 https://esm.ubuntu.com/apps/ubuntu jammy-apps-security InRelease [7,553 B]
Get:3 https://esm.ubuntu.com/apps/ubuntu jammy-apps-updates InRelease [7,459 B]
Get:4 https://esm.ubuntu.com/infra/ubuntu jammy-infra-security InRelease [7,453 B]
Get:5 https://esm.ubuntu.com/infra/ubuntu jammy-infra-updates InRelease [7,452 B]
Get:6 http://security.ubuntu.com/ubuntu jammy-security/main i386 Packages [277 kB]
Get:7 http://security.ubuntu.com/ubuntu jammy-security/main amd64 Packages [631 kB]
Get:8 https://esm.ubuntu.com/apps/ubuntu jammy-apps-security/main amd64 Packages [41.5 kB]
Get:9 http://security.ubuntu.com/ubuntu jammy-security/main Translation-en [148 kB]
Get:10 http://security.ubuntu.com/ubuntu jammy-security/main amd64 c-n-f Metadata [11.0 kB]
Get:11 http://security.ubuntu.com/ubuntu jammy-security/restricted i386 Packages [29.7 kB]
Get:12 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 Packages [651 kB]
Get:13 http://security.ubuntu.com/ubuntu jammy-security/restricted Translation-en [104 kB]
Get:14 http://security.ubuntu.com/ubuntu jammy-security/restricted amd64 c-n-f Metadata [532 B]
Get:15 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 Packages [756 kB]
Get:16 https://esm.ubuntu.com/apps/ubuntu jammy-apps-security/main i386 Packages [32.7 kB]
Get:17 http://security.ubuntu.com/ubuntu jammy-security/universe i386 Packages [544 kB]
Get:18 http://security.ubuntu.com/ubuntu jammy-security/universe Translation-en [136 kB]
Get:19 https://esm.ubuntu.com/apps/ubuntu jammy-apps-updates/main amd64 Packages [479 B]
Get:20 http://security.ubuntu.com/ubuntu jammy-security/universe amd64 c-n-f Metadata [15.9 kB]
Get:21 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 Packages [36.5 kB]
Get:22 http://security.ubuntu.com/ubuntu jammy-security/multiverse i386 Packages [1,032 B]
Get:23 http://security.ubuntu.com/ubuntu jammy-security/multiverse Translation-en [7,060 B]
Get:24 http://security.ubuntu.com/ubuntu jammy-security/multiverse amd64 c-n-f Metadata [260 B]
Get:25 https://esm.ubuntu.com/infra/ubuntu jammy-infra-security/main amd64 Packages [479 B]
Get:26 https://esm.ubuntu.com/infra/ubuntu jammy-infra-updates/main amd64 Packages [479 B]
Fetched 3,567 kB in 0s (0 B/s)
Checking package manager
Reading package lists... Done
Building dependency tree
Reading state information... Done
Invalid package information
After updating your package information, the essential package
'ubuntu-minimal' could not be located. This may be because you have
no official mirrors listed in your software sources, or because of
excessive load on the mirror you are using. See /etc/apt/sources.list
for the current list of configured software sources.
In the case of an overloaded mirror, you may want to try the upgrade
again later.
因此我们可以清楚地看到,do-release-upgrade
第二步决定删除所有主要来源的列表ftp.ubuntu.com/ubuntu
,同时保留security.ubuntu.com
来自同一文件的来源,这当然会导致升级失败,但我不明白为什么要删除它们,也不知道如何防止它删除它们。
我想这里长话短说的问题可能是,因为它说它正在删除第三方来源,也许它认为在这种情况下主要焦点存储库是第三方,那么它如何确定它是第三方来源,也许,如果这是原因,以及如何防止它认为它是第三方来源?
答案1
事实证明我是对的:do-release-upgrade
我以为主要的 ubuntu 存储库是第三方的。但我不知道为什么。我最终发现该工具有一个标志,--allow-third-party
可以避免忽略第三方存储库。
我能够使用此标志升级我的服务器,没有任何问题。然而,考虑到这是一个第三方存储库,该工具的原始问题仍然存在,但这是可以解决的。