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

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.comsecurity.ubuntu.comold-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)

另请参阅EOLUpgrades - 社区帮助 Wiki

  • 更简单的方法是`sudo nano /etc/apt/sources.list`,因为`vi*` 很烦人... (26认同)
  • 而且,只是为了完整起见……`extras` 存储库(用于 Skype 等)怎么样?它们在 EOF 之后的任何地方都可用吗? (11认同)
  • `sed` 命令并不总是有效,因为存在由 `ubuntu.com` 之外的组织运行的镜像。我什至不确定所有域名都有三个点。对于那些,您必须手动编辑`/etc/apt/sources.list`。 (5认同)
  • 更简单的方法是`sudo vi /etc/apt/sources.list` 并手动修改它。我必须这样做,因为我很新,我不知道 sed 使这项工作为业力服务,谢谢,您的回答仍然有效且正确。 (3认同)
  • 截至 2017 年 3 月 21 日,从 15.04 升级时存在此问题。Vivid 不再受支持,但是 dist 不在旧版本上。 (3认同)
  • 对于 2020 年的版本,此答案为我提供了所需的一切:https://askubuntu.com/a/1212699/325562 - 自从编写这些答案以来,事情已经发生了变化,并且它们在 18.10 到 19.04 期间无效。 (2认同)

Adi*_*tya 132

什么是 404 错误

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

当用户尝试访问损坏或死链接时,网站托管服务器通常会生成“404 - 找不到页面”网页。

为什么我们面临 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-releasesUbuntu的服务器。

进行必要修改的步骤

  1. 打开你的终端:

    • Ctrl+ Alt+ T; 或者
    • 如果你有侏儒:ApplicationsAccessoriesTerminal; 或者
    • 如果你有统一:按Super(之间的关键Left CtrlLeft Alt)和查询Terminal
  2. 运行以下命令进入root shell:

    sudo -i
    
    Run Code Online (Sandbox Code Playgroud)

    输入您的用户密码并按Enter。提示会改变,并表明 root 用户现在已登录。 在这里运行以下命令:

    gedit /etc/apt/sources.list
    
    Run Code Online (Sandbox Code Playgroud)
  3. 该文件将在新的 Gedit 窗口中打开。找到不以开头的第一行#。假设您正在运行 Karmic Koala (Ubuntu 9.10):它应该类似于以下行:

    deb <siteurl> karmic main restricted
    
    Run Code Online (Sandbox Code Playgroud)

    其中,<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
    • Replace All
  5. 再来一次:

    • 搜索:(http://security.ubuntu.com/ubuntu所有 Ubuntu 版本的确切 url — 无论您使用的是当前服务器)
    • 用。。。来代替: http://old-releases.ubuntu.com/ubuntu
    • Replace All
  6. 保存文件并退出 Gedit。

  7. 运行以下命令以退出 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 获得任何进一步的安全/错误修复更新。

  • +1 还包括更新安全存储库的说明。 (8认同)
  • @Yokhen 如果该行不是以 `deb &lt;siteurl&gt;` 开头,那么很可能你的 `/etc/apt/sources.list` 文件由于某种原因已损坏。请按照以下给出的答案进行操作:[如何恢复默认存储库?](http://askubuntu.com/questions/124017/how-do-i-restore-the-default-repositories)。这将为您恢复正确的`/etc/apt/sources.list`,然后按照我的回答将服务器更改为指向旧版本服务器。 (3认同)
  • @aderchox 手动编辑“sources.list”是安全的。只要确保不要犯任何错误。如果 `apt` 抱怨任何错误,则修复错误并重新运行 `apt` 命令:-) (2认同)

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

Ubuntu 软件选项卡


在此处输入图片说明

在不关闭软件源(或软件和更新)的情况下,进入第三方软件(对于最新版本,此选项卡名为其他软件)选项卡并添加一个新的 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,请按照以下图片中的说明进行操作:

打开 Synaptic 包管理器


在 SPM 中搜索 VLC


马克VLC


标记额外的 VLC


应用 VLC


下载 VLC


打开 VLC

如果要将 Ubuntu 更新为新版本,只需转到System > Update Manager

更新管理器


升级

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

  • 我只是从已安装的 10.10(特立独行)版本中完成了所有这些。一切都很好,如描述的那样。@Radu,您的回答完美无缺! (2认同)
  • 那些图像需要更新……等等……你用 12.04 之前的版本做什么? (2认同)
  • @Braiam 这些图像是最新的。如果你尝试一下 [Ubuntu 9.04 (Jaunty Jackalope)](http://old-releases.ubuntu.com/releases/9.04/),你就会明白。 (2认同)
  • @RaduRădeanu Ubuntu 9.04 是我第一次涉足 Linux 世界。啊,那些截图勾起了我的回忆! (2认同)

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`到底做了什么?.

这是对我有用的解决方案:

  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 &
    
    Run Code Online (Sandbox Code Playgroud)
  5. 批准升级,然后等待下载完成 - 有数千个文件,可能超过千兆字节。继续安装升级。

  6. 等到它完成,如果询问,请批准。我不记得确切的细节

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


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


tek*_*rah 8

看来 Karmic 存储库不再可用

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


gaj*_*jti 7

您可以在“old-releases”服务器下找到存储库http://old-releases.ubuntu.com/ubuntu/dists/

以及如何编辑/etc/apt/sources.list https://help.ubuntu.com/community/EOLUpgrades


Chr*_*Aga 6

升级一个非常旧的 Ubuntu

如果您的 Ubuntu(KubuntuXubuntuMythbuntu、whatever-buntu)真的很旧,您将必须采取三个步骤才能升级到最新版本:

  1. 破解包更新程序 (APT) 以将您的系统升级到旧版本存储库(包括版本升级管理器)中可用的最新版本
  2. 破解版本升级管理器,使其同意升级到下一个(官方不支持的)版本。
  3. 进行实际的版本升级(并重复)。

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

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

将包源设置为 old-releases.ubuntu.com 并更新

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)

此外,检查的网址UpgradeToolUpgradeToolSignature下手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 次

最近记录:

4 年,8 月 前