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

356

最近我在旧机器上安装了旧版本的Ubuntu。每当我尝试安装任何软件时,都会收到错误消息,说无法找到它:

$ sudo apt-get install vlc
Reading package lists... Done               
Building dependency tree       
Reading state information... Done    
E: Couldn't find package vlc
    
made_in_india 31.12.2011 - 19:29

9 答案

493

不受支持的旧版本的存储库(如11.04,11.10和13.04)将被移动到存档服务器。 链接上提供了存储库。

原因是它现在已不再支持,不再接收更新和安全补丁。

我建议你考虑一下支持的发行版。如果您的计算机在内存或处理器方面太旧,那么您应该考虑使用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过时,我可以继续使用它吗?

升级到新版本:

执行上述步骤切换到旧版镜像后,请更新Update Manager,然后执行 do-release-upgrade

sudo apt-get update
sudo apt-get install update-manager-core
sudo do-release-upgrade

另请参阅 EOLUpgrades - 社区帮助Wiki

    
给出答案 fossfreedom 31.12.2011 - 19:54
106

什么是404错误

  

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

     

网站托管服务器通常会生成"404 - Page Not   找到"网页,当用户试图关注破损或死链接时。

为什么我们面临404错误

Ubuntu遵循两种不同的发布周期的方法:

  

正常的Ubuntu版本支持9个月。 LTS版本支持5年。

     

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

EOL:特定版本的支持期结束后;它们被称为 End of Life(EOL),该版本的所有更新和软件包存储库都将转移到运行 sudo apt-get update 时导致404错误的其他服务器。您可以转到此页面,确认您的版本是否已成为EOL。如果在"End of Life(EOL)"表中提到了Ubuntu版本,则不再支持该版本,您应该尝试升级到更新的支持版本。但是,如果您希望继续使用此不受支持的版本,则必须在 /etc/apt/sources.list 中进行必要的修改以指向Ubuntu的 old-releases 服务器。

进行必要修改的步骤

  1. 打开终端:

    • Ctrl + Alt + T ; OR
    • 如果你有Gnome: ApplicationsAccessoriesTerminal ; OR
    • 如果你有Unity:按 Super 左Ctrl Left Alt 之间的键)并查询 Terminal
  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 ie; <siteurl>
    • 替换为: http://old-releases.ubuntu.com/ubuntu
    • 全部替换
  5. 再一次:

    • 搜索: http://security.ubuntu.com/ubuntu (所有Ubuntu版本的确切网址 - 无论您使用的是哪个服务器)
    • 替换为: http://old-releases.ubuntu.com/ubuntu
    • 全部替换
  6. 保存文件并退出Gedit。

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

    logout
    

    您会发现提示会切换回来指示您的普通用户现在已登录。然后运行以下命令:

    sudo apt-get update
    
  8. 你去吧。这次没有404错误。您现在可以为Ubuntu版本安装所有可用的软件包。您还可以运行 sudo apt-get dist-upgrade 来安装尚未安装的任何安全/错误修复更新,但您不会从Ubuntu获得任何进一步的安全/错误修复更新。

        
给出答案 Aditya 07.01.2013 - 00:02
54

简短的回答是将下一个apt存储库添加到软件源第三方软件(或新版本中的其他软件) >(或更新版本中的软件和更新):

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

答案很长......

GUI方法

嗯,实际上我们会在不使用任何终端的情况下执行此操作。一次也没有。只是GUI,我保证; - )

首先,在较新版本中打开软件来源(或软件和更新)。你的Ubuntu多大了并不重要,肯定有这样的东西。对于Ubuntu 9.04(Jaunty Jackalope),请查看下一张图片以查看位置:

软件来源(或软件和更新)之后,它已打开,请进入 Ubuntu软件更新选项卡并取消选择下一张照片中的每个选项。您不再需要这些东西了,因为您的Ubuntu版本是生命终结

未关闭软件来源(或软件和更新),请进入第三方软件(对于最新版本,此标签已命名其他软件)选项卡并添加新的apt存储库。当您被问到时,请准确插入下一行:

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

如果您的Ubuntu版本不是9.04,请将上面的行 jaunty 替换为您的Ubuntu代号(例如,如果您有Ubuntu 9.10,请替换为 karmic 等等):

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

现在您可以随意下载任何您想要的内容。对于9.04,您可以使用 Synaptic Package Manager 。对于最新版本,有 Ubuntu软件中心

例如,要使用Synaptic Package Manager在Ubuntu 9.04中安装VLC,请按照以下图片中的说明操作:

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

我在Ubuntu 9.04(Jaunty Jackalope)的现场会话中测试了这个方法,正如你可以从这些图片中看到的那样。如果您正在安装的Ubuntu会话中,有时会询问您的root或管理员密码。只要在被问到时插入您的个人用户密码即可。

    
给出答案 Radu Rădeanu 21.06.2013 - 13:24
17

要让 apt-get 再次运行,请将您的软件源更改为旧的发行版存储库。

gksudo gedit /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 13.04.2012 - 11:48
15

我来到这里是因为我无法将系统从15.10(EOL)升级到16.04。但是没有一个答案对我有用......即使在完成了这里建议的所有事情之后,我仍然从 sudo do-release-upgrade 得到令人讨厌的回应:

Checking for a new Ubuntu release  
No new release found

我没有成功运行 update-manager ;它不断抛出我无法解决的异常。我怀疑15.10安装中有些东西已损坏,但最重要的是内置升级失败了。

所以我找了一个非内置方法,果然我发现它正在查看这个答案。

以下是适合我的解决方案:

  1. 打开链接
  2. 找到要升级到的版本。就我而言,它是Xenial Xerus(16.04长期支持)。
  3. 找到UpgradeTool URL。对于xenial,它是这一个 。将该URL中的tarball下载到空文件夹中并打开它( tar -xzf 或使用GUI)。
  4. 找到与分发名称相同的可执行文件(在我的情况下为 xenial )。使用 sudo

    运行它

    sudo ./xenial &

  5. 批准升级,等待下载完成 - 有数千个文件,可能超过千兆字节。继续安装升级......

  6. (我执行升级后很久就编辑了......它很成功,我忘了更新)

    1. 等到它完成,如果被要求批准......我不记得确切的细节

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

给出答案 laugh 15.10.2016 - 14:19
11

虽然 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重新加载包信息时,您应该会看到它成功检索到更新的包信息。

    
给出答案 Stuart Cook 19.06.2014 - 04:19
6

Karmic存储库似乎不再可用。

由于它们适用于以前版本的Ubuntu,您可以考虑从源列表中删除它们。请逐步查看此帮助页面

    
给出答案 tekNorah 31.12.2012 - 23:49
5

您可以在"旧版本"服务器链接下找到存储库

关于如何编辑 /etc/apt/sources.list 链接

    
给出答案 gajdipajti 13.04.2012 - 11:45
1

有一个边缘案例 - apt-get claim 16.04 LTS不存在 - 旧的软件包(在我的情况下是Vivid)不在"旧版本"服务器上。但apt-get只能找到内核和谷歌的更新。

我不确定我的问题究竟是什么,因为我盲目地遵循了接受的答案 sed 命令(从不聪明的举动)。

这不起作用,因为Vivid不在"旧版本"存档中,但仍在 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 镜像具有较旧的版本集。
  3. 这里的内容是,虽然这里的大部分答案可能适用于某些情况,但是在你为"旧版本"存档核对之前,确保你的 /etc/apt/sources.list 是正确的。

    您可以通过简单地将浏览器选项卡指向存档和问题并在文件夹列表中查找您的版本名称来确定哪个存档或您的镜像具有所需的版本。无论您的版本是哪一个,都是您需要使用的来源。

        
给出答案 Matthew Brown aka Lord Matt 05.06.2017 - 17:12

阅读有关标签的其他问题