将 Ubuntu 服务器从 Intrepid 升级到 Jaunty 时出错

将 Ubuntu 服务器从 Intrepid 升级到 Jaunty 时出错

我正在尝试将旧的 Ubuntu 服务器从 8.10 (Intrepid) 升级到 9.04 (Jaunty)。但失败了。

root@server1:/# do-release-upgrade
Checking for a new ubuntu release
Failed Upgrade tool signature
Failed Upgrade tool
Done downloading
extracting 'jaunty.tar.gz'
Failed to extract
Extracting the upgrade failed. There may be a problem with the network or with the server.

有人知道我为什么会收到这个错误以及如何修复它吗?

更新:我想我可能已经找到这个问题了。

我的 /etc/update-manager/meta-release 如下所示:

[METARELEASE]

URI = http://changelogs.ubuntu.com/meta-release
URI_LTS = http://changelogs.ubuntu.com/meta-release-lts
URI_UNSTABLE_POSTFIX = -development
URI_PROPOSED_POSTFIX = -proposed

如果我去http://changelogs.ubuntu.com/meta-release它包含有关 Jaunty 的以下信息:

Dist: jaunty
Name: Jaunty Jackalope
Version: 9.04
Date: Thu, 23 Apr 2009 12:00:00 UTC
Supported: 0
Description: This is the 9.04 release
Release-File: http://archive.ubuntu.com/ubuntu/dists/jaunty/Release
ReleaseNotes: http://changelogs.ubuntu.com/EOLReleaseAnnouncement
UpgradeTool: http://archive.ubuntu.com/ubuntu/dists/jaunty-proposed/main/dist-upgrader-all/0.111.8/jaunty.tar.gz
UpgradeToolSignature: http://archive.ubuntu.com/ubuntu/dists/jaunty-proposed/main/dist-upgrader-all/0.111.8/jaunty.tar.gz.gpg

由于 jaunty 已终止使用,因此以 archive.ubuntu.com 开头的那些链接已损坏。

我想我可以通过复制此文件、将“archive”替换为“old-releases”、将修改后的文件托管到某处并更改元发布文件中的 URL 来修复此问题。这是一个好的解决方案还是会让我遇到更糟糕的问题?

答案1

8.10 和 9.04 均不受支持,您需要一直升级到 10.04。

Canonical 在其存储库关闭后保留了有关如何从某个版本升级的文档这里

添加以下内容/etc/apt/sources.list

deb http://old-releases.ubuntu.com/ubuntu/ intrepid main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ intrepid-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ intrepid-security main restricted universe multiverse

使用新的存储库进行更新,并针对 intrepid 存储库升级软件包:

apt-get update && apt-get dist-upgrade

然后就可以使用发布升级工具了:

do-release-upgrade

重复上述操作,将 替换intrepidjaunty即可sources.list升级到 9.10。要升级到 10.04,您不需要进行手动修改,因为看起来 Karmic 源仍然在原始位置,尽管已经过了支持期限。

答案2

斯图尔特,

我认为这个问题可以用一种更简单的方式解决,而不必使用另一台机器。以下是我所做的:

从以下位置复制旧的(不正确的)文件http://changelogs.ubuntu.com/meta-release到本地文件(例如)/etc/meta-release.rvg 我修改了 /etc/meta-release.rvg,以便将“archive”替换为“old-releases”

修改了 /etc/update-manager/meta-release 以便它指向我的本地文件而不是 ubuntu 站点上的错误 URI - 这是我更改后的样子:

[METARE 发布]

URI = 文件:///etc/meta-release.rvg

URI_LTS =http://changelogs.ubuntu.com/meta-release-lts

URI_UNSTABLE_POSTFIX = -开发

URI_PROPOSED_POSTFIX = -建议

然后我运行了 do-release-upgrade,一切都很顺利

问候,

拉金德拉·戈哈勒

答案3

再次遇到此问题后,我找到了一个更简单的答案:将其放入服务器 /etc/hosts 文件中:

91.189.88.140 存档.ubuntu.com

该服务器不是基于名称的,因此您可以将 archive.ubuntu.com 指向旧版本,它就可以工作。

注意:升级时请记得删除 HOSTS 中的这一行

斯图

答案4

我自己刚刚遇到了这个问题,并且远离机器,我想升级它而不是平面安装它(而且我有很多数据,我不想先移动它!)

正如您所说,问题是文件不再存在于其已知位置: http://archive.ubuntu.com/ubuntu/dists/jaunty-proposed/main/dist-upgrader-all/0.111.8/jaunty.tar.gz

我创建了一个快速 php 代理文件来解决这个问题(我不想发布我的镜像,所以我将发布代理文件,你可以自己做)。

您需要设置另一个网络服务器来接收来自 archive.ubuntu.com 的请求(输入该域名)

在 htdocs 文件夹中放置包含以下内容的 index.php:(对于格式不佳,我深表歉意 - 我无法让它在所见即所得中看起来正确!)

ini_set('最大执行时间',800);

$uri = $_SERVER['REQUEST_URI'];

$新域 = 'http://old-releases.ubuntu.com';

$is_file = false;

如果(strpos($_SERVER['REQUEST_URI'],'.')==0){ $tmp = $_SERVER['REQUEST_URI'].“.html”; } else { $tmp = $_SERVER['REQUEST_URI']; $is_file = true; }
如果(!is_file($dir.$_SERVER['REQUEST_URI'])){ $file = file_get_contents($newDomain.$_SERVER['REQUEST_URI']);

  $dir = 'cache';         $folders =

explosive('/',$_SERVER['REQUEST_URI']); ##创建主缓存文件夹 if(!is_dir($dir))mkdir($dir,0777); ///创建缓存文件夹 for($i=0;$i

  file_put_contents('cache'.$tmp,$file);

}

$ch = curl_init($newDomain.$_SERVER['REQUEST_URI']); //curl_setopt($ch, CURLOPT_HEADER, 1); ob_start(); $c = curl_exec($ch); $ob = ob_get_clean(); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); $type = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);

如果($is_file){ header('Content-Type:',$type); header(“HTTP/1.1 200 Ok”); readfile('cache'。$tmp,$file); } else { header('Content-Type:',$type); header(“HTTP/1.1 200 Ok”); die($ob); }

现在创建 .htaccess 并将其放入其中:

allow from all

RewriteEngine 在 RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ /index.php [QSA,L]

创建文件夹 htdocs/cache 并将其 chmod 为 777

进入您要升级的机器并编辑 /etc/hosts(nano /etc/hosts)并输入一行:

XXX.XXX.XXX.XXX archive.ubuntu.org

将 XXX 替换为新代理的 IP 地址。

您可能必须运行“/etc/init.d/nscd restart”和“/etc/init.d/networking restart”(在要升级的机器上)以确保您的 DNS 缓存已被清除并且您的新代理用作 archive.ubuntu.org 的 IP。

再次运行 do-release-upgrade。

这很不方便,但是使用我拥有的另一个专用盒子,它帮我完成了工作。

相关内容