mad*_*dia 467 upgrade package-management support repository release-management
最近我在旧机器上安装了旧版本的 Ubuntu。每当我尝试安装任何软件时,都会收到一条错误消息,说找不到它:
$ sudo apt-get install vlc
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package vlc
Run Code Online (Sandbox Code Playgroud)
fos*_*dom 651
不受支持的旧版本(如 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/([a-z]{2}\.)?archive.ubuntu.com|security.ubuntu.com/old-releases.ubuntu.com/g' /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
然后更新:
sudo apt-get update && sudo apt-get dist-upgrade
Run Code Online (Sandbox Code Playgroud)
有时,创建系统备份并使用支持的版本重新安装可能会更快。
来源:如果 Ubuntu 9.04 已过时,我可以继续使用它吗?
执行上述步骤切换到旧版本镜像后,更新更新管理器,然后执行以下操作do-release-upgrade
:
sudo apt-get update
sudo apt-get install ubuntu-release-upgrader-core
sudo do-release-upgrade
Run Code Online (Sandbox Code Playgroud)
Adi*_*tya 132
404 or Not Found 错误消息是一个 HTTP 标准响应代码,表示客户端能够与服务器通信,但服务器找不到请求的内容。
当用户尝试访问损坏或死链接时,网站托管服务器通常会生成“404 - 找不到页面”网页。
Ubuntu 遵循两种不同发布周期的方法:
正常的 Ubuntu 版本支持 9 个月。LTS 版本支持 5 年。
过去的版本可能有不同的支持时间表(例如,普通版本(13.04 之前)过去支持 18 个月,而 LTS 版本(12.04 之前)过去在桌面上支持 3 年,在服务器上支持 5 年)。
EOL:一旦特定版本的支持期结束;它们被称为生命周期结束 (EOL),并且该版本的所有更新和软件包存储库都传输到不同的服务器,这会导致运行时出现 404 错误sudo apt-get update
。您可以前往此页面确认您的版本是否已停产。如果您的 Ubuntu 版本在“生命周期结束 (EOL)”表下被提及,则该版本不再受支持,您应该尝试升级到更新的受支持版本。但是,如果您希望继续使用此不受支持的版本,则必须进行必要的修改/etc/apt/sources.list
以指向old-releases
Ubuntu的服务器。
打开你的终端:
Applications
→ Accessories
→ Terminal
; 或者Terminal
。运行以下命令进入root shell:
sudo -i
Run Code Online (Sandbox Code Playgroud)
输入您的用户密码并按Enter。提示会改变,并表明 root 用户现在已登录。 在这里运行以下命令:
gedit /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)该文件将在新的 Gedit 窗口中打开。找到不以开头的第一行#
。假设您正在运行 Karmic Koala (Ubuntu 9.10):它应该类似于以下行:
deb <siteurl> karmic main restricted
Run Code Online (Sandbox Code Playgroud)
其中,<siteurl>
是您的首选服务器 -http://gb.archive.ubuntu.com/ubuntu
在您的情况下(例如)。
按Ctrl+H将您的替换<siteurl>
为http://old-releases.ubuntu.com/ubuntu
。
http://gb.archive.ubuntu.com/ubuntu
即;<siteurl>
http://old-releases.ubuntu.com/ubuntu
和再来一次:
http://security.ubuntu.com/ubuntu
所有 Ubuntu 版本的确切 url — 无论您使用的是当前服务器)http://old-releases.ubuntu.com/ubuntu
保存文件并退出 Gedit。
运行以下命令以退出 root shell:
logout
Run Code Online (Sandbox Code Playgroud)
您会发现提示切换回以指示您的普通用户现在已登录。然后运行以下命令:
sudo apt-get update
Run Code Online (Sandbox Code Playgroud)你去吧。这次没有 404 错误。您现在可以为您的 Ubuntu 版本安装所有可用的软件包。您还可以运行sudo apt-get dist-upgrade
以安装尚未安装的任何安全/错误修复更新,但您不会从 Ubuntu 获得任何进一步的安全/错误修复更新。
Rad*_*anu 63
简短的回答是将下一个 apt 存储库添加到软件源(或较新版本中的软件和更新 )中的第三方软件(或较新版本中的其他软件):
deb http://old-releases.ubuntu.com/ubuntu code_name main restricted universe multiverse
Run Code Online (Sandbox Code Playgroud)
长答案...
好吧,实际上我们将在不使用任何终端的情况下执行此操作。一次都没有。只是 GUI,我保证;-)
首先,打开软件源(或较新版本中的软件和更新)。不管你的 Ubuntu 多老,肯定有这样的东西。对于 Ubuntu 9.04 (Jaunty Jackalope),请查看下一张图片以查看其位置:
在软件源(或软件和更新)打开后,进入Ubuntu 软件和更新选项卡并取消选择所有内容,如下图所示。你不再需要这些东西,因为你的 Ubuntu 版本是End of Life:
在不关闭软件源(或软件和更新)的情况下,进入第三方软件(对于最新版本,此选项卡名为其他软件)选项卡并添加一个新的 apt 存储库。当你被问到时,正好插入下一行:
deb http://old-releases.ubuntu.com/ubuntu jaunty main restricted universe multiverse
Run Code Online (Sandbox Code Playgroud)
如果您的 Ubuntu 版本不是 9.04,请将以上行替换jaunty
为您的 Ubuntu 代号(例如,如果您有 Ubuntu 9.10,请替换为karmic
等等):
现在,当您关闭软件源(或软件和更新)时,系统会要求您重新加载有关可用软件的信息。只要确保您有可用的互联网连接:
现在您几乎可以免费下载任何您想要的内容。对于 9.04,您可以使用Synaptic Package Manager。对于最新版本,有Ubuntu 软件中心。
例如,要使用 Synaptic Package Manager 在 Ubuntu 9.04 中安装 VLC,请按照以下图片中的说明进行操作:
如果要将 Ubuntu 更新为新版本,只需转到System > Update Manager:
我在 Ubuntu 9.04 (Jaunty Jackalope) 的实时会话中测试了这种方法,正如您从这些图片中看到的那样。如果您正在安装 Ubuntu 会话,有时会要求您输入 root 或管理员密码。只需在询问时输入您的个人用户密码即可。
lau*_*a C 30
我来到这里是因为我无法将系统从 15.10 (EOL) 升级到 16.04。但是没有一个答案对我有用,即使在做了这里建议的所有事情之后,我仍然从sudo do-release-upgrade
烦人的回复中得到:
Checking for a new Ubuntu release
No new release found
Run Code Online (Sandbox Code Playgroud)
而我在跑步方面没有成功update-manager
;它不断抛出我无法解决的异常。我怀疑我的 15.10 安装中有些东西损坏了,但最重要的是内置升级失败了。
所以我寻找了一个非内置的方法,果然我发现它在看`do-release-upgrade`到底做了什么?.
这是对我有用的解决方案:
找到要升级到的版本。就我而言,它是 Xenial Xerus(16.04 长期支持)。您可以在Release-Ubuntu Wiki上找到相应的代号。
找到 UpgradeTool URL。因为xenial
它是http://archive.ubuntu.com/ubuntu/dists/xenial-updates/main/dist-upgrader-all/current/xenial.tar.gz。从该 URL 下载 tarball 到一个空文件夹中并解压。
找到与发行版同名的可执行文件(在我的例子中xenial
)。运行它sudo
:
sudo ./xenial &
Run Code Online (Sandbox Code Playgroud)
批准升级,然后等待下载完成 - 有数千个文件,可能超过千兆字节。继续安装升级。
等到它完成,如果询问,请批准。我不记得确切的细节
重启后新版本运行成功,所有更新都可以正常获取。
mik*_*ver 20
要apt-get
重新开始工作,请将您的软件源更改为旧版本存储库。
sudo nano /etc/apt/sources.list
Run Code Online (Sandbox Code Playgroud)
删除其中的任何内容,然后粘贴以下内容:
# 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
Run Code Online (Sandbox Code Playgroud)
就这样。
Stu*_*ook 15
虽然fossfreedom的答案在描述和解决问题方面做得很好,但我发现了一个我认为更简单、更优雅的变体解决方案。
诀窍是添加http://old-releases.ubuntu.com/ubuntu/
为镜像,然后告诉软件源切换到该镜像。
为此,请备份和编辑/usr/share/python-apt/templates/Ubuntu.mirrors
. 为旧版本服务器选择一个假位置(例如#LOC:US
),并在其下添加以下行:
#LOC:US
http://old-releases.ubuntu.com/ubuntu/
Run Code Online (Sandbox Code Playgroud)
现在打开系统的软件源对话框,手动选择old-releases.ubuntu.com
它,就像它是您的区域镜像一样。您应该会发现它列在您在上一步中选择的虚假位置下。
下次您通过 Synaptic 或更新管理器重新加载包信息时,您应该会看到它成功检索更新的包信息。
您可以在“old-releases”服务器下找到存储库http://old-releases.ubuntu.com/ubuntu/dists/
以及如何编辑/etc/apt/sources.list
https://help.ubuntu.com/community/EOLUpgrades
如果您的 Ubuntu(Kubuntu、Xubuntu、Mythbuntu、whatever-buntu)真的很旧,您将必须采取三个步骤才能升级到最新版本:
请记住,您只能从一个“正常”版本升级到下一个,以及从长期支持 (LTS) 版本升级到下一个 LTS 版本。
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
Run Code Online (Sandbox Code Playgroud)
wget -O - http://changelogs.ubuntu.com/meta-release > meta-release
wget -O - http://changelogs.ubuntu.com/meta-release-lts > meta-release-lts
Run Code Online (Sandbox Code Playgroud)
您必须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
…
Run Code Online (Sandbox Code Playgroud)
此外,检查的网址UpgradeTool
和UpgradeToolSignature
下手http://old-releases.ubuntu.com
(不http://archive.ubuntu.com
)。
/etc/update-manager/meta-release
以指向本地元发布将原始 URI 替换为指向本地元发布文件的 URI
[METARELEASE]
URI = file:///home/chris/meta-release
URI_LTS = file:///home/chris/meta-release-lts
URI_UNSTABLE_POSTFIX = -development
URI_PROPOSED_POSTFIX = -proposed
Run Code Online (Sandbox Code Playgroud)
sudo do-release-upgrade
sudo apt-get update && sudo apt-get dist-upgrade && sudo apt autoremove
Run Code Online (Sandbox Code Playgroud)
要求时重新启动。
重做直到您的系统是最新的。
当被问到时,回答您希望/etc/update-manager/meta-release
在上次升级时保留您编辑过的版本。
上述过程对我有用,可以升级到不受支持的版本,然后升级到最后一个 LTS 版本,但我无法再升级。
我做了什么:Ubuntu 17.04(Zesty Zapus)?Ubuntu 17.10(巧妙的土豚)?Ubuntu 18.04(仿生海狸)
然后我找到了-p
( --proposed
) 选项do-release-upgrade
。
do-release-upgrade -p
Run Code Online (Sandbox Code Playgroud)
它尝试升级到最新的可用版本!它奏效了:我跳过了两个版本,直接从Ubuntu 18.04 (Bionic Beaver)跳到了Ubuntu 19.10 (Eoan Ermine)!
也许一次将 Ubuntu 17.04 (Zesty Zapus) 升级到 Ubuntu 19.10 (Eoan Ermine) 可能会奏效。
归档时间: |
|
查看次数: |
607424 次 |
最近记录: |