如何安装软件或从旧的不受支持的版本升级?
最近我在我的旧机器上安装了旧版本的Ubuntu。 每当我尝试安装任何软件时,都会收到错误消息,说无法找到:
$ sudo apt-get install vlc Reading package lists... Done Building dependency tree Reading state information... Done E: Couldn't find package vlc
不受支持的旧版本的存储库(如11.04,11.10和13.04)将移动到存档服务器。 http://old-releases.ubuntu.com上有一些存储库。
原因是它现在不再支持,不再接收更新和安全补丁。
我建议你考虑一下支持的发行版。 如果您的计算机在内存或处理器方面太旧,那么您应该考虑使用Lubuntu或Xubuntu等发行版。
如果要继续使用过时的版本,请编辑/etc/apt/sources.list
并将archive.ubuntu.com
和security.ubuntu.com
更改为old-releases.ubuntu.com
。
你可以用sed
做到这一点:
sudo sed -i -re 's/([az]{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 。
什么是404错误
404或Not Found错误消息是HTTP标准响应代码,表示客户端能够与服务器通信,但服务器无法找到所请求的内容。
当用户尝试关注断开或死链接时,网站托管服务器通常会生成“404 – 找不到页面”网页。
为什么我们面临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
服务器。
进行必要修改的步骤
-
打开你的终端:
- 按Ctrl + Alt + T ; 要么
- 如果您有Gnome:
Applications
→Accessories
→Terminal
; 要么 - 如果您有Unity:按Super ( 左Ctrl和左Alt之间的键 )并查询
Terminal
。
-
运行以下命令进入root shell:
sudo -i
输入您的用户密码,然后按Enter键 。 提示符将更改并指示root用户现在已登录。此处运行以下命令:
gedit /etc/apt/sources.list
-
该文件将在新的Gedit窗口中打开。 找到不以
#
开头的第一行。 假设您正在运行Karmic Koala(Ubuntu 9.10):它应该如下所示:deb
karmic main restricted 其中,
是您的首选服务器 – 例如http://gb.archive.ubuntu.com/ubuntu
(例如)。 -
按Ctrl + H将
替换为http://old-releases.ubuntu.com/ubuntu
。- 搜索:
http://gb.archive.ubuntu.com/ubuntu
:http://gb.archive.ubuntu.com/ubuntu
ie; - 替换为:
http://old-releases.ubuntu.com/ubuntu
:http://old-releases.ubuntu.com/ubuntu
和 - 按全部替换
- 搜索:
-
再来一次:
- 搜索:
http://security.ubuntu.com/ubuntu
:http://security.ubuntu.com/ubuntu
(所有Ubuntu版本的确切url – 无论您使用的是哪个服务器) - 替换为:
http://old-releases.ubuntu.com/ubuntu
:http://old-releases.ubuntu.com/ubuntu
- 按全部替换
- 搜索:
-
保存文件并退出Gedit。
-
运行以下命令以退出root shell:
logout
您会发现提示切换回来指示您的普通用户现在已登录。然后运行以下命令:
sudo apt-get update
你去吧 这次没有404错误。 您现在可以为Ubuntu版本安装所有可用的软件包。 您还可以运行sudo apt-get dist-upgrade
来安装尚未安装的任何安全/错误修复更新,但您不会从Ubuntu获得任何进一步的安全/错误修复更新。
简短的回答是将下一个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,请在上面的行中替换您的Ubuntu代号(例如,如果您有Ubuntu 9.10,请替换为karmic
等):
现在,当您关闭软件源 (或软件和更新 )时,将要求您重新加载有关可用软件的信息。 请确保您有可用的互联网连接:
现在,您可以随意下载任何您想要的内容。 对于9.04,您可以使用Synaptic Package Manager 。 对于最新版本,有Ubuntu软件中心 。
例如,要使用Synaptic Package Manager在Ubuntu 9.04中安装VLC,请按照以下图片中的说明操作:
如果要将Ubuntu更新到新版本,只需转到系统 > 更新管理器 :
我从Ubuntu 9.04(Jaunty Jackalope)的实时会话中测试了这个方法,你可以从这些图片中看到它的工作原理。 如果您正在安装的Ubuntu会话中,有时会询问您的root或管理员密码。 只要在被问到时插入您的个人用户密码即可。
要使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
就这样。
我来到这里是因为我无法将系统从15.10(EOL)升级到16.04。 但是没有一个答案对我有用……即使在完成了这里建议的所有内容后,我仍然从sudo do-release-upgrade
获取sudo do-release-upgrade
恼人的响应:
Checking for a new Ubuntu release No new release found
我没有成功运行update-manager
; 它不断抛出我无法解决的exception。 我怀疑15.10安装中有些东西已损坏,但最重要的是内置升级失败了。
所以我找了一个非内置方法,果然我发现它看着这个答案 。
这是适合我的解决方案:
- 打开http://changelogs.ubuntu.com/meta-release
- 找到要升级到的版本。 就我而言,它是Xenial Xerus(16.04长期支持)。
- 找到UpgradeTool URL。 对于xenial来说就是这个 。 从该URL下载tarball到一个空文件夹并打开它(
tar -xzf
或使用GUI)。 -
找到与分发名称相同的可执行文件(在我的情况下为
xenial
)。 用sudo
运行它:sudo ./xenial &
-
批准升级,并等待下载完成 – 有数千个文件,可能超过千兆字节。 继续安装升级……
(在我执行升级后很久就编辑了…它很成功,我忘了更新)
-
等到它完成,如果被要求批准……我不记得确切的细节
-
重新启动后,新版本成功运行,可以正常获取所有更新。
虽然fossfreedom的答案在描述和解决问题方面做得很好 ,但我发现了一种变体解决方案,我觉得它更容易,更优雅。
诀窍是将http://old-releases.ubuntu.com/ubuntu/
添加为镜像 ,然后告诉软件源切换到该镜像。
为此,请备份并编辑/usr/share/python-apt/templates/Ubuntu.mirrors
。 为旧版本服务器选择一个虚假位置(例如#LOC:US
),并在其下添加以下行:
#LOC:US http://old-releases.ubuntu.com/ubuntu/
现在打开系统的Software Sources对话框,并手动选择old-releases.ubuntu.com
就像它是您的区域镜像一样。 您应该会在上一步中选择的假位置下找到它。
下次通过Synaptic或Update Manager重新加载包信息时,您应该会看到它成功检索更新的包信息。
似乎Karmic存储库不再可用 。
由于它们适用于以前版本的Ubuntu,因此您可以考虑从源列表中删除它们。 请逐步查看此帮助页面 。
您可以在“旧版本”服务器下找到存储库http://old-releases.ubuntu.com/ubuntu/dists/
以及如何编辑/etc/apt/sources.list
https://help.ubuntu.com/community/EOLUpgrades
有一个边缘案例 – apt-get声明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
。 然后它在没有问题的情况下升级到下一个版本,同时我赶上了一些阅读。
所以要么:
- 我的消息来源有问题
-
gb.archive.unbuntu.com
镜像有一组较旧的版本。
这里要说的是,尽管这里的大多数答案可能适用于某些情况,但在确定你的/etc/apt/sources.list
是否正确之前,你需要付出代价才能获得“旧版本”存档。
您可以通过简单地将浏览器选项卡指向存档和问题并在文件夹列表中查找您的版本名称来确定哪个存档或您的镜像具有所需的版本。 无论您的版本是哪一个,都是您需要使用的来源。