从CentOS5框安装CentOS6?

我试图从我的CentOS 5主机上build立一个新的CentOS 6虚拟机,但似乎这些版本之间有一些基本的变化:

$ rpm -ivh --nodeps --nodigest --ignorearch --ignoreos --force --root=/mnt centos-release-6-0.el6.centos.5.i686.rpm warning: centos-release-6-0.el6.centos.5.i686.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID c105b9de Preparing... ########################################### [100%] 1:centos-release ########################################### [100%] error: unpacking of archive failed: cpio: Bad magic $ rpm --version RPM version 4.4.2.3 

这些版本之间RPM的神奇数量是否改变? 我如何解决这个问题?

编辑(澄清):

不想升级现有的机器。 我正在尝试使用yum –installroot = / mnt groupinstall核心来创build新的安装。 为了得到一个工作configuration,第一步是安装包含yum repoconfiguration的release rpm。

不能这样做,AFAIK:RPM中的坏魔法是最less的问题。

总之:没有推荐的RHEL5-> RHEL6升级path,因此没有Centos5-> 6。 我尝试了一下这个方向(我自己有大量的C5服务器),但决定不这么做。

考虑到5> 6转换相当于Fedora核心6> 12转换,但在yum中没有预升级支持。 所以你可以想象,popup一个FC7 DVD,开机

selinux = 0 upgradeany

漂洗,并以FC8 … FC11结束与CentOS6结束。 祝你好运 – 说到我自己的机器,我会感到惊讶的是结束了比工作顺序更复杂的任何事情 – 这是在尝试这个时髦的壮举一两天后。

我估计我可能会在更短的时间内重build(工作)机器。 考虑到RHEL5还有几年的支持,这也是一样的。

问题

问题如下:

  1. RHEL6的rpm文件使用不同的幻数
  2. RHEL5 python2.4不能识别用于CentOS 6中校验和下载的sha256
  3. yum在RHEL6中使用不同的数据库格式,这样RHEL5 yum构build的chroot环境就不会被RHEL6中的yum所理解

警告:下面的问题1的解决scheme是危险的。 如果RPM升级中断,您可能最终导致系统损坏。 解决问题2可能导致安装破损的包裹!

通过从源RPM反向移植RPM 4.6,可以绕过问题1。 见http://orcorc.blogspot.com/2009/03/oh-my-goodness.html

为soure RPM构build依赖关系:

 $ yum install redhat-rpm-config elfutils-devel elfutils-libelf-devel readline-devel zlib-devel nss-devel gettext-devel libselinux-devel ncurses-devel bzip2-devel python-devel lua-devel xz-devel xz 

没有适当的lua在我的CentOS分区。 从rpmsearch获取:

 $ rpm -i lua-5.1.2-1.el5.x86_64.rpm lua-devel-5.1.2-1.el5.x86_64.rpm 

安装并构build源RPM。 当然可能需要额外的软件包,比如gcc:

 $ rpm -i rpm-4.6.0-4.0.notting.1.el5.src.rpm $ rpmbuild -ba /usr/src/redhat/SPECS/rpm.spec 

在实际安装更换RPM之前进行testing:

 $ rpm -U --test /usr/src/redhat/RPMS/i386/rpm-4.6.0-4.0.notting.1.i386.rpm /usr/src/redhat/RPMS/i386/rpm-libs-4.6.0-4.0.notting.1.i386.rpm /usr/src/redhat/RPMS/i386/rpm-python-4.6.0-4.0.notting.1.i386.rpm /usr/src/redhat/RPMS/i386/rpm-build-4.6.0-4.0.notting.1.i386.rpm 

我们现在可以安装基线:

 $ rpm -i --root=/mnt centos-release-6-0.el6.centos.5.i686.rpm 

问题2可以通过手动编辑/usr/lib/python2.4/site-packages/yum文件来解决(PYTHONPATH的魔法可以用来使这个稍微less一些)。 差异看起来如此:

 --- yum-python/__init__.py 2011-10-05 11:03:00.000000000 +0200 +++ /usr/lib/python2.4/site-packages/yum/__init__.py 2011-10-05 11:14:24.000000000 +0200 @@ -1215,7 +1215,7 @@ if ylp.pkgtup != po.pkgtup: failed = True - + failed = False if failed: # if the file is wrong AND it is >= what we expected then it # can't be redeemed. If we can, kill it and start over fresh diff -ru yum-python/yumRepo.py /usr/lib/python2.4/site-packages/yum/yumRepo.py --- yum-python/yumRepo.py 2011-10-05 11:03:00.000000000 +0200 +++ /usr/lib/python2.4/site-packages/yum/yumRepo.py 2011-10-05 11:12:51.000000000 +0200 @@ -1461,6 +1461,7 @@ else: file = fn + return 1 try: l_csum = self._checksum(r_ctype, file) # get the local checksum except Errors.RepoError, e: 

我们现在准备执行yum groupinstall:

 $ yum groupinstall --nogpgcheck --installroot=/mnt core 

请注意,由于我们禁用了大部分包validation,所以在这一步可能会导致安装失败。 密切关注输出:

 Failed: python.i686 0:2.6.5-3.el6_0.2 redhat-logos.noarch 0:60.0.14-10.el6 $ yum install --nogpgcheck --installroot=/mnt python redhat-logos 

冲洗并重复。

由于核心不会做任何系统设置,您可能需要在下一步之前做任何事情。 我需要提供/mnt/etc/resolv.conf。

现在我们有了一个可以解决问题3的环境:

 $ SHELL=/bin/bash chroot /mnt $ yum install zsh error: cannot open Packages index using db3 - No such file or directory (2) error: cannot open Packages database in /var/lib/rpm 

幸运的是,这很容易解决:只需重build/ var / lib / rpm:

 $ mv /var/lib/rpm/ /var/lib/old.rpm $ rpm --initdb 

在这一点上,我遇到了经典的$ releasever问题,所以我不得不编辑/etc/yum.repos.d/*来将$ releaseverreplace为6.例如:

 sed -re 's/\$releasever/6/g' -i /etc/yum.repos.d/CentOS-Base.repo 

可能有更好的方法来做到这一点,但我还没有find。

 $ yum install zsh Loaded plugins: fastestmirror Determining fastest mirrors YumRepo Error: All mirror URLs are not using ftp, http[s] or file. Eg. $releasever is not a valid release or hasnt been released yet/ removing mirrorlist with no valid mirrors: /var/cache/yum/i386/$releasever/base/mirrorlist.txt Error: Cannot find a valid baseurl for repo: base 

编辑完成后,yum按预期工作,而且我有一个从CentOS 5构build的CentOS 6。任何CentOS 6的chroot环境/ guest虚拟机guest安装指令应该能够让你成为一个全面的系统。

大,

在这种情况下,我的系统崩溃,需要做一些更多的系统方面的creazy。

许多事情是如此依赖于系统的实际状态,所以除了不同之外, 最重要的是要解决“RPM:坏魔法”

开始之前检查其他方式! 如


Sometihing是错误的? 那么你可以使用rpm2cpio或mc来提取cpio,然后cpio提取rpm文件并手动复制到文件夹不要忘记运行ldconfig之后

可能你必须获取新版本的cpio来提取cpio内容

所以我即将去el6版本来解决这个问题。

意思是,必须让RPM再次工作,然后我可以重新安装其他软件包。

由于系统被破坏,没有更多的el6库可供安装,必须编译所有依赖于源代码的东西。

1)尽可能多地从el5版本库中安装yum与devel软件包,其中头文件是nss3 + devel lzma + devel nspr4 + devel ncurses + devel readline db-4.5.20 + devel rpm-libs + devel

在其他情况下不得不下载源代码并进行编译

2)继续前进cpio,lzma获取SRPM和补丁的内容下载cpio 2.10+更好=从主页编译并安装 下载rpm 4.6.0+更好=从主页编译并安装 下载rpm-libs 4.6.0+更好=从主页编译并安装 下载db-4.5.20更好=从主页编译安装

rpm * el6有4.8。*但兼容性好4.6+

如果rpmbuild –rebuild将会在midle行中变得完整,那么意味着GOD祝福你,并且你已经安装了适当版本的头文件和库文件

或者对于其他的依赖下载src.rpm文件解压缩rpm,cpio,主压缩包将补丁应用到一个文件夹

http://ftp.redhat.com/pub/redhat/linux/enterprise/6Server/en/os/SRPMS/

总是应用修补程序,必须指定正确的文件名或在同一文件夹中创build符号链接

 ls *.patch.bz2|while read a;do bzcat $a > $a.patch;done ls *.patch.gz|while read a;do zcat $a > $a.patch;done ls cpio*.patch|while read p;do patch -p0 < "$p";done 

毕竟build立像lzma和其他你必须做的库

 ldconfig 

用于configurationRPM

 CFLAGS="-lncurses -lnss3 -I/usr/include/nss3 -I/usr/include/nspr4 -lnspr4" ./configure --prefix=/usr --with-lua --with-lzma --with-nss3 --with-nspr4 --with-external-db make 

其他configuration如cpio

 CFLAGS="-lncurses -lnss3 -I/usr/include/nss3 -I/usr/include/nspr4 -lnspr4" # or specify bin folder ./configure --prefix=/ make # test, !!! make backup of rpm binaries and libs in case rollback /usr/lib/rpm /usr/bin /bin and rpm-db make install # then move man and other to /usr/share from / where are now 

在回滚的情况下,你必须重新安装rpm manualy或用备份版本replace文件并运行ldconfig

命令

一切正确吗?

%make install

并继续“我们现在可以安装baseline:”,或者如果您只是更新从/etc/yum.repos.d中删除其他存储库只保留el6包

小心,如果你不确定是否有一些删除,你必须用rpm来安装manualy

 yum clean all yum update --skip-broken package-clean --problems package-clean --dups yum update 

从安装DVD创build本地存储库只是安装isos到mnt并在mnt中调用

 yum install yum-utils cd /mnt createrepo . 

一些知识库 FIX $ releasever与版本的el5

  cat << _EOF_ > /etc/yum.repos.d/all-in-one-`date +%s`.repo [base] name=CentOS-6.4-colacl-dvd mount baseurl=file:///mnt gpgcheck=0 ### Name: RPMforge RPM Repository for RHEL 5 - dag ### URL: http://rpmforge.net/ [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el5/en/5.7/rpmforge mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-extras] name = RHEL $releasever - RPMforge.net - extras baseurl = http://apt.sw.be/redhat/el5/en/$basearch/extras mirrorlist = http://apt.sw.be/redhat/el5/en/mirrors-rpmforge-extras gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge] name = RHEL $releasever - RPMforge.net - dag baseurl = http://apt.sw.be/redhat/el6/en/$basearch/rpmforge mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 [rpmforge-extras] name = RHEL $releasever - RPMforge.net - extras baseurl = http://apt.sw.be/redhat/el6/en/$basearch/extras mirrorlist = http://apt.sw.be/redhat/el6/en/mirrors-rpmforge-extras gpgkey = file:///etc/pki/rpm-gpg/RPM-GPG-KEY-rpmforge-dag gpgcheck = 1 #---- Packages previously released as 5.7, and its updates [C5.7-base] name=CentOS-5.7 - Base baseurl=http://vault.centos.org/5.7/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.7-updates] name=CentOS-5.7 - Updates baseurl=http://vault.centos.org/5.7/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.7-extras] name=CentOS-5.7 - Extras baseurl=http://vault.centos.org/5.7/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.7-centosplus] name=CentOS-5.7 - Plus baseurl=http://vault.centos.org/5.7/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #---- Packages previously released as 5.6, and its updates [C5.6-base] name=CentOS-5.6 - Base baseurl=http://vault.centos.org/5.6/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.6-updates] name=CentOS-5.6 - Updates baseurl=http://vault.centos.org/5.6/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.6-extras] name=CentOS-5.6 - Extras baseurl=http://vault.centos.org/5.6/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.6-centosplus] name=CentOS-5.6 - Plus baseurl=http://vault.centos.org/5.6/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #---- Packages previously released as 5.5, and its updates [C5.5-base] name=CentOS-5.5 - Base baseurl=http://vault.centos.org/5.5/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.5-updates] name=CentOS-5.5 - Updates baseurl=http://vault.centos.org/5.5/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.5-extras] name=CentOS-5.5 - Extras baseurl=http://vault.centos.org/5.5/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.5-centosplus] name=CentOS-5.5 - Plus baseurl=http://vault.centos.org/5.5/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #---- Packages previously released as 5.4 and its updates [C5.4-base] name=CentOS-5.4 - Base baseurl=http://vault.centos.org/5.4/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.4-updates] name=CentOS-5.4 - Updates baseurl=http://vault.centos.org/5.4/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.4-extras] name=CentOS-5.4 - Extras baseurl=http://vault.centos.org/5.4/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.4-centosplus] name=CentOS-5.4 - Plus baseurl=http://vault.centos.org/5.4/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #---- Packages previously released as 5.3 and its updates [C5.3-base] name=CentOS-5.3 - Base baseurl=http://vault.centos.org/5.3/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.3-updates] name=CentOS-5.3 - Updates baseurl=http://vault.centos.org/5.3/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.3-extras] name=CentOS-5.3 - Extras baseurl=http://vault.centos.org/5.3/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.3-centosplus] name=CentOS-5.3 - Plus baseurl=http://vault.centos.org/5.3/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #---- Packages previously released as 5.2 and its updates [C5.2-base] name=CentOS-5.2 - Base baseurl=http://vault.centos.org/5.2/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.2-updates] name=CentOS-5.2 - Updates baseurl=http://vault.centos.org/5.2/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.2-extras] name=CentOS-5.2 - Extras baseurl=http://vault.centos.org/5.2/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.2-centosplus] name=CentOS-5.2 - Plus baseurl=http://vault.centos.org/5.2/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #---- Packages previously released as 5.1 and its updates [C5.1-base] name=CentOS-5.1 - Base baseurl=http://vault.centos.org/5.1/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.1-updates] name=CentOS-5.1 - Updates baseurl=http://vault.centos.org/5.1/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.1-extras] name=CentOS-5.1 - Extras baseurl=http://vault.centos.org/5.1/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.1-centosplus] name=CentOS-5.1 - Plus baseurl=http://vault.centos.org/5.1/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #---- Packages previously released as 5.0 and its updates [C5.0-base] name=CentOS-5.0 - Base baseurl=http://vault.centos.org/5.0/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.0-updates] name=CentOS-5.0 - Updates baseurl=http://vault.centos.org/5.0/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.0-extras] name=CentOS-5.0 - Extras baseurl=http://vault.centos.org/5.0/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.0-centosplus] name=CentOS-5.0 - Plus baseurl=http://vault.centos.org/5.0/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [basee] name=CentOS-$releasever - Base mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #released updates [updatese] name=CentOS-$releasever - Updates mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #additional packages that may be useful [extrase] name=CentOS-$releasever - Extras mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #additional packages that extend functionality of existing packages [centospluse] name=CentOS-$releasever - Plus mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #contrib - packages by Centos Users [contribe] name=CentOS-$releasever - Contrib mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 #---- Packages previously released as 5.8, and its updates [C5.8-base] name=CentOS-5.8 - Base baseurl=http://vault.centos.org/5.8/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.8-updates] name=CentOS-5.8 - Updates baseurl=http://vault.centos.org/5.8/updates/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.8-extras] name=CentOS-5.8 - Extras baseurl=http://vault.centos.org/5.8/extras/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 [C5.8-centosplus] name=CentOS-5.8 - Plus baseurl=http://vault.centos.org/5.8/centosplus/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 _EOF_ 

请你喜欢邀请你到我的页面,而不是喜欢它,喜欢。

Facebook页面