如何安装软件或从旧的不受支持的版本升级?

最近我在我的旧机器上安装了一个较旧的Ubuntu版本。每当我尝试安装任何软件时,都会出现一个错误提示说找不到该软件。
$ sudo apt-get install vlc
Reading package lists... Done               
Building dependency tree       
Reading state information... Done    
E: Couldn't find package vlc

8也许值得编辑一些(或全部)回答这个问题,因为在周末花了很长时间试图使其工作后,我幸运地意识到它们已经从http://old-releases.ubuntu.com/ubuntu/迁移到了http://us.archive.ubuntu.com/ubuntu/(或者你自己所在国家的两个字母缩写开头),从17.10版本开始(基本上与回到字母表开头的同步)。 - Isti115
1他们故意这样做是为了破坏旧版本并迫使你升级。 - Matej J
1在2020年从Artful升级到Bionic时,我发现us.archive.无法使用,但old-releases.可以。 - jab
尝试升级您的发行版,例如 sudo do-release-upgrade - kenorb
2升级EOL Ubuntu 21.10至22.04 我使用GUI程序“软件更新器”以更简单的方式升级了Ubuntu,而不像此帖子中早期回复建议的那样手动更新任何系统文件。这是在Ubuntu 21.10 EOL之后的许多个月内完成的。注意:https://ubuntu.com/tutorials/upgrading-ubuntu-desktop#1-before-you-start中给出的步骤会出现“404 Not Found”错误,主要是因为我的/etc/apt/sources.list引用了已失效的链接。而GUI方法则成功进行了操作。 - Bhuvan
12个回答

不再受支持的旧版本存储库(如11.04、11.10和13.04)将被移至存档服务器。您可以在http://old-releases.ubuntu.com找到这些存储库。

之所以这样做,是因为它已经不再受支持,不再接收更新和安全补丁。

我建议您考虑使用受支持的发行版。如果您的计算机在内存或处理器方面太旧,那么您应该考虑使用Lubuntu或Xubuntu等发行版。

如果您想继续使用过时的版本,请编辑/etc/apt/sources.list文件,并将archive.ubuntu.comsecurity.ubuntu.com更改为old-releases.ubuntu.com

您可以使用sed命令来完成此操作:

sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list

然后更新为:
sudo apt-get update && sudo apt-get dist-upgrade

有时候,创建系统备份并使用支持的版本重新安装可能会更快。
来源:如果Ubuntu 9.04已过时,我还能继续使用吗?

升级到新版本:

完成上述步骤切换到旧版本镜像后,更新更新管理器,然后执行do-release-upgrade命令:

sudo apt-get update
sudo apt-get install ubuntu-release-upgrader-core
sudo do-release-upgrade

另请参阅EOLUpgrades - Community Help Wiki

12为了完整起见...extras软件库(如Skype等)呢?在支持终止后还能在任何地方获取它们吗? - MestreLion
5一个更简单的方法是使用sudo vi /etc/apt/sources.list命令手动修改它。我不太熟悉sed命令,所以只能这样做来适应karmic系统。谢谢你的回答,它仍然是有效和正确的。 - bhathiya-perera
27一个更简单的方法是用sudo nano /etc/apt/sources.list,因为vi*只会让人烦恼... - Wilf
1@TomášZato,在有人能回答关于extras.ubuntu.com的问题之前,你可以将特定行注释掉,以便继续使用其他apt-get命令。 - Vineet Menon
5sed命令并不总是有效,因为有些镜像是由ubuntu.com之外的组织运行的。我甚至不确定所有域名都有三个点。对于这些情况,您必须手动编辑/etc/apt/sources.list文件。 - Olathe
3升级自2017年3月21日的15.04版本存在问题。Vivid不再得到支持,但是该发行版并未包含在旧版发布中。 - Matthew Titsworth
不行,我正在尝试在Ubuntu 16.10上安装一个程序。所有的链接都切换到了旧版本的URL,但是这些链接都显示404错误。 - Kaz
1archive.canonical.com怎么样?我猜它不需要改变。 - jpmc26
do-release-upgrade 是我正在寻找的东西。 - August Janse
@Olathe 你可以尝试这个方法:sed -i 's|/archive.canonical|archive.canonical|g;s|http://.*/ubuntu|http://old-releases.ubuntu.com/ubuntu|g;s|archive.canonical|/archive.canonical|g' /etc/apt/sources.list - mchid
该解决方案不允许升级,如果下一个版本不受支持(即,它只适用于第一个不受支持的版本或第一个不受支持的LTS版本)。请参阅下方的升级非常旧的Ubuntu - ChrisAga
2对于2020年发布的版本,这个答案给了我所有我需要的东西:https://askubuntu.com/a/1212699/325562 - 自那时起,情况发生了变化,这些答案对于18.10到19.04来说已经不再有效。 - Kevin Teljeur
1这个答案(特别是 sed 部分)仍然适用于 impish,该版本最近不再受支持。 - wotanii
1树莓派用户注意:您的原始sources.list条目在存储库URL末尾会有/ubuntu-ports/。旧版本服务器没有其他架构的单独目录,所有内容都放在/ubuntu/下。因此,除了将域名替换为old-releases.ubuntu.com,您还需要从URL末尾删除-ports。我在这里遇到了这个问题,并最终自己解决了:https://askubuntu.com/a/1423627/1585621 - maples

404错误是什么

404或未找到错误消息是HTTP标准响应代码,表示客户端能够与服务器通信,但服务器无法找到所请求的内容。

当用户尝试访问一个损坏或失效的链接时,网站托管服务器通常会生成"404 - 页面未找到"的网页。

我们为什么会遇到404错误

Ubuntu采用了两种不同的发布周期

普通Ubuntu发布版支持9个月。 LTS版本支持5年。

过去的版本可能有不同的支持计划(例如,早期的普通版本(13.04之前)在桌面上支持18个月,而LTS版本(12.04之前)在服务器上支持5年,在桌面上支持3年)。

EOL(终止支持):一旦某个版本的支持期结束,它们就被称为终止生命周期(EOL),该版本的所有更新和软件包存储库将被转移到不同的服务器,这会导致在运行sudo apt-get update时出现404错误。您可以通过访问此页面来确认您的版本是否已经过期。如果您的Ubuntu版本在“终止生命周期(EOL)”表中提到,则表示该版本不再受支持,您应该尝试升级到更高版本的支持版本。然而,如果您希望继续使用这个不受支持的版本,您需要在/etc/apt/sources.list中进行必要的修改,以指向Ubuntu的old-releases服务器。

进行必要修改的步骤

  1. 打开终端:

    • 按下 Ctrl + Alt + T;或者
    • 如果你使用 Gnome:点击 应用程序附件终端;或者
    • 如果你使用 Unity:按下 Super 键(位于 左 Ctrl左 Alt 之间的键),然后搜索 终端
  2. 运行以下命令进入 root shell:

    sudo -i
    

    输入你的用户密码并按下 Enter。提示符会改变并指示 root 用户已登录。在这里运行以下命令:

    gedit /etc/apt/sources.list
    
  3. 文件将在一个新的 Gedit 窗口中打开。找到第一行不以 # 开头的行。假设你正在运行 Karmic Koala(Ubuntu 9.10),它应该像下面这样:

    deb <siteurl> karmic main restricted
    

    其中,<siteurl> 是你首选的服务器 - 在你的情况下是 http://gb.archive.ubuntu.com/ubuntu(例如)。

  4. 按下 Ctrl + H,将你的 <siteurl> 替换为 http://old-releases.ubuntu.com/ubuntu

    • 搜索:http://gb.archive.ubuntu.com/ubuntu<siteurl>
    • 替换为:http://old-releases.ubuntu.com/ubuntu 并且
    • 点击 全部替换
  5. 再次:

    • 搜索:http://security.ubuntu.com/ubuntu(对于所有 Ubuntu 版本都是相同的 URL)
    • 替换为:http://old-releases.ubuntu.com/ubuntu
    • 点击 全部替换
  6. 保存文件并退出 Gedit。

  7. 运行以下命令退出 root shell:

    logout
    

    你会发现提示符切换回来,表示你的普通用户已登录。然后运行以下命令:

    sudo apt-get update
    
这次没有404错误了。您现在可以安装所有适用于您的Ubuntu版本的可用软件包。您还可以运行sudo apt-get dist-upgrade来安装尚未安装的安全/错误修复更新,但您将不会再收到来自Ubuntu的任何其他安全/错误修复更新。

9+1 也包括更新安全存储库的说明。 - Gaffi
实际上,第一行没有#的是raring main restricted,完全没有deb。我按照指示进行了更改,还替换了URL,但仍然出现404错误。 - Ren
3@Yokhen 如果行没有以deb <siteurl>开头,那么很可能是由于某种原因导致您的/etc/apt/sources.list文件损坏了。请按照以下答案给出的步骤进行操作: 如何恢复默认软件源?。这将为您恢复正确的/etc/apt/sources.list文件,然后按照我的答案更改服务器以指向旧版本服务器。 - Aditya
谢谢!不知怎么的,我成功地从13.04升级到了13.10,现在正朝着14.04的方向前进。 - Ren
1在较新的Ubuntu版本中,默认情况下不再安装gksu。而且由于该版本已经到达了终止支持期限,用户将无法安装它。最好使用nanovim,并配合正常的sudo命令来代替。使用gksu可能会引起混淆,就像在以下问题中所提到的:http://askubuntu.com/questions/797422/how-to-install-gksu-on-15-04 - Dan
1@Dan,修改了答案,现在我们进入根shell,然后运行图形化程序。不再需要使用gksudo。我希望保留这个答案给像我这样的新手用户,并且不想用基于终端的编辑器来复杂化问题,无论它们有多么简单或强大。 - Aditya
@Yokhen 你可能已经明白了,但如果有其他人也遇到同样的问题,我敢打赌是因为你开启了文本自动换行功能,并且窗口太小了。只需增大窗口大小,就会显示正常。 - Mike
谢谢。这帮助我从Zesty升级到Artful。:-) - We are Borg
这也解决了我从Zesty升级到Artful时遇到的问题。(我想初始升级只完成了一半,我没有注意到) - complistic
更改sources.list文件后,不会有任何后果吗? - aderchox
2@aderchox 手动编辑 sources.list 是安全的。只要确保不犯任何错误。如果 apt 抱怨有任何错误,那就修复错误并重新运行 apt 命令 :-) - Aditya
无法工作。http://old-releases.ubuntu.com/ubuntu/pool/main/w/webkit2gtk/libwebkit2gtk-4.0-37_2.28.2-0ubuntu0.20.04.1_amd64.deb 仍然显示未找到。 - GilbertS

简单来说,您需要将下一个apt存储库添加到“第三方软件”(或新版本中的“其他软件”)中的“软件源”(或新版本中的“软件和更新”)中。
deb http://old-releases.ubuntu.com/ubuntu code_name main restricted universe multiverse

答案有点长...

图形用户界面方法

嗯,实际上我们将在不使用任何终端的情况下完成这个。一次都不用。只用图形界面,我保证;-)

首先,打开软件源(或新版本中的软件与更新)。无论您的Ubuntu有多旧,肯定有类似的东西。对于Ubuntu 9.04(Jaunty Jackalope),请查看下一张图片以了解其位置:

Open Software Sources

在打开“软件源”(或“软件和更新”)之后,进入“Ubuntu软件”和“更新”选项卡,并像下面的图片一样取消选择所有内容。由于您的Ubuntu版本已经到达生命周期结束,您不再需要这些东西了。

Ubuntu Software tab


enter image description here

在不关闭软件源(或软件和更新)的情况下,进入第三方软件(对于最新版本,此选项卡被命名为其他软件)选项卡,并添加一个新的apt存储库。当要求时,请精确地插入以下行:

deb http://old-releases.ubuntu.com/ubuntu jaunty main restricted universe multiverse

如果你的Ubuntu版本不是9.04,那么请在上面的行中将jaunty替换为你的Ubuntu代号(例如,如果你使用的是Ubuntu 9.10,请将其替换为karmic,依此类推)。

Third-Party Software tab

现在,当您关闭“软件源”(或“软件和更新”)时,系统会要求您重新加载有关可用软件的信息。请确保您有一个正常工作的互联网连接。

Reload available software


Downloading available software

现在,您可以随意下载几乎任何您想要的东西。对于9.04版本,您可以使用“Synaptic软件包管理器”。对于最新发布的版本,有“Ubuntu软件中心”。
例如,要在Ubuntu 9.04上使用Synaptic软件包管理器安装VLC,请按照以下图片中的说明进行操作:

Open Synaptic Package Manager


Search VLC in SPM


Mark VLC


Mark additional VLC


Apply VLC


Download VLC


Open VLC

如果您想将Ubuntu更新到新版本,只需转到系统 > 更新管理器

Update Manager


Upgrade

我在Ubuntu 9.04(Jaunty Jackalope)的实时会话中测试了这种方法,并且从这些图片中可以看出它是有效的。如果你正在使用已安装的Ubuntu系统,有时会要求输入root或管理员密码。当被询问时,请输入你个人的用户密码即可。

2我刚刚完成这一切,使用的是10.10(Maverick)版本进行安装。一切都很顺利,就像描述的那样。@Radu,你的答案无懈可击! - Gediminas Jeremiah Gudelis
2这些图片需要更新...等一下...你用的是12.04之前的版本做什么? - Braiam
2@Braiam这些图片都是最新的。如果你愿意试试Ubuntu 9.04 (Jaunty Jackalope),你就会明白的。 - Radu Rădeanu
2@RaduRădeanu Ubuntu 9.04是我第一次涉足Linux世界。啊,那些截图让我回忆起往事! - Tyzoid
无法将15.04升级到16.04,无法使其正常工作。无法继续添加新的APT行,请帮忙解决。 - MrMule
@MrMule,看看我下面的回答,也许对你有帮助。 - laugh salutes Monica C
我对答案表示感激,然而在我看来可能有点太冗长了。我不打算阅读和研究所有的 15 张截图,它们随时间迅速变化,也许如果只有一半的截图 -7 张,我才会发现这对我的情况不起作用,并最终失败。当问题还有其他 10 个回答时。 - FantomX1
我在这个问题中找到了解决方案,所以我想添加一个单行快捷方式作为答案,但是由于没有通过审核,我至少会将其作为评论发布,如果有人需要的话。release=bionic; cat > "/etc/apt/sources.list.d/$release.list"<<EOF deb http://archive.ubuntu.com/ubuntu $release universe deb http://archive.ubuntu.com/ubuntu $release multiverse deb http://security.ubuntu.com/ubuntu $release-security main EOF并在执行sudo apt update命令后执行,或者您可以根据自己的需求处理这条评论。 - FantomX1

我来到这里,是因为无法将一个从15.10(已终止支持)升级到16.04的系统。但是没有哪个答案对我起作用,即使在做了这里建议的一切之后,当我运行sudo do-release-upgrade时,仍然会得到令人讨厌的回应。
Checking for a new Ubuntu release  
No new release found

我在运行update-manager时遇到了一些问题,无法成功。它一直抛出异常,我无法解决。我怀疑我的15.10安装文件某些部分已损坏,但最重要的是内置的升级方式都失败了。
所以我寻找了一种非内置的方法,并且我发现了What does `do-release-upgrade` really do?
下面是对我有效的解决方案:
  1. 打开http://changelogs.ubuntu.com/meta-release

  2. 找到你想升级的版本。在我的情况下,是Xenial Xerus(16.04长期支持)。你可以在Release - Ubuntu Wiki上找到对应的代号。

  3. 找到UpgradeTool的URL。对于xenial,它是http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/dist-upgrader-all/current/xenial.tar.gz。将该URL中的tarball下载到一个空文件夹中,并解压缩。

  4. 找到与发行版同名的可执行文件(在我的情况下是xenial)。使用sudo运行它:

    sudo ./xenial &
    
  5. 批准升级,并等待下载完成 - 这里有数以千计的文件,可能超过一GB。继续安装升级。

  6. 等待直到完成,如果被询问,请进行确认。我不记得具体的细节了。

  7. 重启后,新版本成功运行,并且可以正常获取所有更新。


1我花了一些时间才找到这篇帖子。只有使用引用的tarball,我才成功地从15.04 / wily进行升级。使用旧版本url的方法无效。我希望这能帮助其他用户解决这个问题。 - Jeroen
很高兴你觉得它有帮助! - laugh salutes Monica C
1真的非常感谢这个,我刚刚使用这些步骤将10.04升级到12.04。我的问题与众不同,我的安装并没有损坏,但在do-release-upgrade中出现了一个无法在终端中找到的错误。按照这些步骤,弹出了一个对话框告诉我“验证某些软件包时出错”,这让我找到了http://askubuntu.com/a/426121/262601,它确实允许升级成功进行。我曾经为此苦恼不已,但这是我自己没有及时升级的错。 - Fooxz
很不幸,即使对于15.04版本也无法解决这个问题。 - MiroJanosik
太棒了!我有一个充满活力的服务器,但是我一直忽视它。现在我成功地将其升级到了Artful版本,并且可以进一步升级。谢谢! - Patrick Cornelissen
1这还能正常工作!我不得不修复meta-release文件中的17.10 URL,该文件未更新为old-releases,但通常情况下这是不必要的。我建议遇到问题的用户确保升级曾经在某个时间点得到支持--这些情况之一 或者 那种情况--并且考虑结合其他答案建议的准备工作,比如启用old-releases服务器并在开始之前升级当前版本中的所有软件包。 - Eliah Kagan
这会将我从19.10带到22.04吗? - Rubaiat Hossain

要使 apt-get 再次工作,将你的软件源更改为旧版本存储库。
sudo nano /etc/apt/sources.list

删除其中的任何内容,并粘贴以下内容:
# Required
deb http://old-releases.ubuntu.com/ubuntu/ karmic main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ karmic-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ karmic-security main restricted universe multiverse

# Optional
#deb http://old-releases.ubuntu.com/ubuntu/ karmic-backports main restricted universe multiverse

就这些。

谢谢mikewhatever,但是当我尝试"apt-get install lm-sensors"时,结果是一样的。也许还有其他缺失的源:"正在读取软件包列表... 完成 正在构建依赖关系树 正在读取状态信息... 完成 软件包lm-sensors不可用,但是被另一个软件包引用。 这可能意味着该软件包已丢失、已过时或仅在其他来源中可用。 E: 软件包lm-sensors没有安装候选项" - Rorro
这里是deb包的链接:http://old-releases.ubuntu.com/ubuntu/pool/main/l/lm-sensors-3/。我相信你已经重新加载了源列表,对吧? - mikewhatever
这个回答不起作用...为什么它有这么多赞?有人真的测试过吗? - Tomáš Zato
我已经测试过了,但真正的问题是:为什么你还在使用Karmic?它已经多年没有得到支持了,你应该转向更近期的版本。 - mikewhatever
这个对我非常有帮助,之前走了很多弯路都没有解决。但是还有一件事没有提到,就是你需要纠正源列表文件中的任何URL。URL中的版本号必须与Ubuntu版本名称匹配。 - OldBuildingAndLoan

fossfreedom的回答中,对问题进行了很好的描述和解决方案,但我发现了一个更简单、更优雅的变通方法。
关键是将http://old-releases.ubuntu.com/ubuntu/ 添加为一个镜像站点,然后告诉软件源切换到该镜像站点。
要做到这一点,首先备份并编辑/usr/share/python-apt/templates/Ubuntu.mirrors文件。为旧版本服务器选择一个虚假位置(例如#LOC:US),然后在其下添加以下一行:
#LOC:US
http://old-releases.ubuntu.com/ubuntu/

现在打开系统的软件源对话框,并手动选择old-releases.ubuntu.com,就像它是你的地区镜像一样。你应该能在之前选择的虚假位置下找到它。
下次通过Synaptic或Update Manager重新加载软件包信息时,你应该能成功获取更新的软件包信息。

工作正常,非常简单和快速。 - doug

升级一个非常旧的Ubuntu

如果你的Ubuntu(KubuntuXubuntuMythbuntu,或者其他-buntu)非常旧,你需要采取三个步骤来升级到最新版本:

  1. 修改软件包更新器(APT)以将系统升级到old-releases存储库中最新可用的版本(包括升级管理器)。
  2. 修改升级管理器以使其同意升级到下一个(官方不支持的)版本。
  3. 进行实际的版本升级(并重复上述步骤)。

请记住,你只能从一个“正常”的版本升级到下一个版本,从长期支持(LTS)版本升级到下一个LTS版本。

将系统更新为http://old-releases.ubuntu.com上最新可用的版本

将软件源设置为old-releases.ubuntu.com并进行更新

sudo cp /etc/apt/sources.list /etc/apt/sources.list.save
sudo sed -i -re 's/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt autoremove

在这里,如果您当前的版本不是太旧(`sudo do-release-upgrade`),您可以尝试进行版本升级。如果失败了,您可以在`/var/log/dist-upgrade/main.log`中找到一些线索,这些线索可能有助于找到解决方法。
如果您的版本太旧,请继续下一步。

使用本地数据配置版本升级管理器

检索元发布文件

wget -O - http://changelogs.ubuntu.com/meta-release  > meta-release
wget -O - http://changelogs.ubuntu.com/meta-release-lts  > meta-release-lts

编辑元发布以将所有下一个版本设置为支持的

您必须为每个版本设置Supported: 1

示例:我使用的是Ubuntu 17.04(Zesty Zapus),并将从artful开始的所有版本都设置为支持的。

Dist: artful
Name: Artful Aardvark
Version: 17.10
Date: Thu, 19 October 2017 17:10:00 UTC
Supported: 1
Description: This is the 17.10 release
Release-File: http://old-releases.ubuntu.com/ubuntu/dists/artful-updates/Release
ReleaseNotes: http://changelogs.ubuntu.com/EOLReleaseAnnouncement
UpgradeTool: http://old-releases.ubuntu.com/ubuntu/dists/artful-updates/main/dist-upgrader-all/current/artful.tar.gz
UpgradeToolSignature: http://old-releases.ubuntu.com/ubuntu/dists/artful-updates/main/dist-upgrader-all/current/artful.tar.gz.gpg
…

此外,请检查 UpgradeToolUpgradeToolSignature 的 URL 是否以 http://old-releases.ubuntu.com 开头(而不是 http://archive.ubuntu.com)。

编辑 /etc/update-manager/meta-release,指向本地的 meta-release

将原始的 URI 替换为指向您本地 meta-release 文件的 URI。

[METARELEASE]
URI = file:///home/chris/meta-release
URI_LTS = file:///home/chris/meta-release-lts
URI_UNSTABLE_POSTFIX = -development
URI_PROPOSED_POSTFIX = -proposed

升级

sudo do-release-upgrade
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt autoremove

当被要求时重新启动。

重复操作直到系统更新完毕。

当被询问时,回答要保留你编辑过的/etc/update-manager/meta-release文件,除非在最后一次升级中。

当你陷入旧版本中

上述描述的过程对我来说有效,可以升级到不受支持的版本,然后升级到最新的LTS版本,但无法再进行升级。

我的做法:Ubuntu 17.04(Zesty Zapus)→ Ubuntu 17.10(Artful Aardvark)→ Ubuntu 18.04(Bionic Beaver)

然后我发现了do-release-upgrade命令的-p--proposed)选项。

do-release-upgrade -p

它尝试升级到最新可用的版本!而且成功了:我跳过了两个版本,直接从Ubuntu 18.04(Bionic Beaver)跳到Ubuntu 19.10(Eoan Ermine)

也许一次性将Ubuntu 17.04(Zesty Zapus)升级到Ubuntu 19.10(Eoan Ermine)可能也会成功。


1这是最干净的方法。 - skitheo
很遗憾我不能用do-release-upgrade -p标记答案,它是最好的,最简单的,永远最顶尖的,也是唯一有效的 :-) - undefined

看起来Karmic存储库不再可用
由于它们是针对以前的Ubuntu版本,您可能考虑从源列表中删除它们。请参考此帮助页面进行逐步操作。


谢谢gajdipajti,我在软件包列表中寻找它,但是找不到正确的“.deb”文件。我的Ubuntu已经安装了“libsensors3”,但所有的软件包都要求我安装“libsensors4”。我知道正常的解决方案应该是升级,但由于这台计算机专门用于运行只支持9.10版本的软件,所以我无法这样做。 - Rorro
@Rorro:哪个软件只能在Ubuntu 9.10上运行? - unforgettableidSupportsMonica

有一个特殊情况 - apt-get声称16.04 LTS不存在 - 在这种情况下,旧的软件包(在我的情况下是Vivid)不在"old-releases"服务器上。但是apt-get只能找到内核和Google的更新。
我不确定我的问题具体是什么,因为我盲目地遵循了被接受的答案中的sed命令(这从来都不是明智之举)。
这并没有起作用,因为Vivid不在"old-releases"存档中,但仍然在gb.archive.ubuntu.com镜像上。
在这种特殊情况下,解决方案如下:
sudo -i
edit /etc/apt/sources.list

仔细查看所有来源,发现其中一个是旧的、错误的,并且没有正确更新(或者其他原因)。或者像我一样,从old-releases.ubuntu.com替换为gb.archive.ubuntu.com。然后,它顺利地升级到下一个版本,而我则趁机阅读了一些内容。
所以,要么:
1. 我的源有问题; 2. gb.archive.unbuntu.com镜像有较旧的版本。
这里的要点是,尽管大多数答案在某些情况下可能适用,但在删除"old-releases"存档之前,最好确保你的/etc/apt/sources.list是正确的。
你可以通过在浏览器中打开存档和问题,并在文件夹列表中寻找你的版本名称,来确定存档或镜像中哪个有你需要的版本。无论哪个有你的版本,都是你需要使用的源。