我试图从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替代intrepid和jaunty ,能够提高到9.10。 移到10.04,你不需要手动修改,因为看起来业力来源仍然在原来的位置,尽pipe已经过去了。
斯图尔特,
我认为这个问题可以用更简单的方式解决,而不必使用另一台机器。 这是我做的:
修改了/ 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 allRewriteEngine 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,但它使用我有另一个专用的盒子完成了我的工作。