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

我试图从8.10(无畏)升级到9.04(Jaunty)的旧的Ubuntu服务器。 但是失败了。

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 

那些从archive.ubuntu.com开始的链接被打断,因为jaunty是EOL。

我想我可以通过复制这个文件来解决这个问题,用“old-releases”replace“archive”,把修改后的文件放在某个地方,然后在meta-release文件中修改url。 这是一个很好的解决scheme,还是会让我遇到更糟糕的问题?

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 

使用新的存储库进行更新,并根据无畏的存储库升级软件包:

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

然后您可以使用发行版升级工具:

 do-release-upgrade 

冲洗和重复,在sources.list替代intrepidjaunty ,能够提高到9.10。 移到10.04,你不需要手动修改,因为看起来业力来源仍然在原来的位置,尽pipe已经过去了。

斯图尔特,

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

http://changelogs.ubuntu.com/meta-release复制旧的(不正确的)文件到一个本地文件(比如说)/etc/meta-release.rvg我修改了/etc/meta-release.rvg,这样“archive “被”旧版本“取代

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

[METARELEASE]

URI = file:///etc/meta-release.rvg

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

URI_UNSTABLE_POSTFIX =开发

URI_PROPOSED_POSTFIX =build议

然后我跑了发布升级,一切都像魅力一样

问候,

Rajendra Gokhale

再次遇到这个问题后,我发现一个更简单的答案:把它放在servers / etc / hosts文件中:

91.189.88.140 archive.ubuntu.com

服务器不是基于名称的,所以你可以指向archive.ubuntu.com旧版本,它的工作原理。

注意:请记住在升级时从HOSTS中删除该行

斯图

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

你所说的问题是这些文件不再存在于他们已知的位置: http : //archive.ubuntu.com/ubuntu/dists/jaunty-proposed/main/dist-upgrader-all/0.111.8/jaunty.tar 。广州

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

您需要另一个networking服务器设置才能接收来自archive.ubuntu.com的请求(input您的域名)

在htdocs文件夹中放置这些内容的index.php :(我为可怜的格式道歉 – 我无法让它在wysiwyg中看起来是正确的!)

函数ini_set( '的max_execution_time',800);

$ uri = $ _SERVER ['REQUEST_URI'];

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

$ is_file = false;

if(strpos($ _ SERVER ['REQUEST_URI'],'。')== 0){$ tmp = $ _SERVER ['REQUEST_URI']。“。html”; } else {$ tmp = $ _SERVER ['REQUEST_URI']; $ is_file = true; }
if(!is_file($ dir。$ _ SERVER ['REQUEST_URI'])){$ file = file_get_contents($ newDomain。$ _ SERVER ['REQUEST_URI']);

  $dir = 'cache'; $folders = 

爆炸( '/',$ _ SERVER [ 'REQUEST_URI']); 如果(!is_dir($ dir))mkdir($ dir,0777); ///为($ i = 0; $ i)创buildcaching文件夹

  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);

if($ is_file){header('Content-Type:',$ type); 头(“HTTP / 1.1 200好”); ReadFile的( 'caching' $ TMP,$文件); } else {header('Content-Type:',$ type); 头(“HTTP / 1.1 200好”); 死亡($ OB); }

现在创build.htaccess并将其放入:

 allow from all 

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

创build文件夹htdocs /caching和chmod它777

进入正在尝试升级的机器并编辑/ etc / hosts(nano / etc / hosts)并input一行:

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

使用新代理的IP地址replaceXXX。

您可能需要运行“/etc/init.d/nscd restart”和“/etc/init.d/networking restart”(在要升级的机器上),以确保您的DNScaching清除,并使用新的代理作为archive.ubuntu.org的IP。

再次运行发行版升级。

这是hacky,但它使用我有另一个专用的盒子完成了我的工作。