RedHat
企业版Linux
AS3和WS3的Update3版本光盘版(下面简称U3)不提供升级安装选项,给在学习这个优秀系统的爱好者(咱不说盗版,那太难听了,等咱有了
钱......。如果确实需要在生产环境使用这个系统,强烈建议购买正版,个人感觉EL3确实是一个优秀发行版)造成了一定困难。这里提供一个采用硬盘
ISO文件升级到AS3U3的方法,这个方法适合我自己的系统,如果有错误和不足之处欢迎批评指出。
0 强烈建议升级前仔细阅读RELEASE NOTES
0.1 系统背景和一个小技巧
我的机器是一个用于开发和提供简单服务的老双P3,安装了AS3提供的大部分软件,已经升级到U2并自己编译安装了了大部分U2之后的补丁,下面实例都是基于我自己的软件和硬件环境的,如果您的软件环境不同,下面的一些步骤会有不同。
0.1 转换BIN/CUE格式的光盘镜像到ISO格式
ror提供的U3是rar压缩的CUE格式的光盘镜像,要在硬盘安装需要首先解压并转换成ISO格式。
软件需求:rar和bchunk,可以在rpmfind.net找到src.rpm,AS3下面可能需要自己用rpmbuild命令编译再安装。以bchunk为例:
下载bchunk
[root@ns root]# rpmbuild --rebuild bchunk-1.1.1-3mdk.src.rpm
[root@ns root]# rpm -ihv /usr/src/redhat/RPMS/i386/bchunk-1.1.1-3mdk.i386.rpm
解压rar压缩的U3光盘,并转换成ISO格式
[root@ns CD1]# rar x rorr3a31.rar
[root@ns CD1]# bchunk rhel-3-U3-i386-as-disc1.bin rhel-3-U3-i386-as-disc1.cue rhel-3-U3-i386-as-disc1
这样产生的ISO文件名字为:rhel-3-U3-i386-as-disc101.iso
对其它3个光盘镜像做同样处理。
1 RPM目录准备(假设ISO文件都在当前目录)
[root@ns AS3U3]# mkdir cd1
[root@ns AS3U3]# mkdir cd2
[root@ns AS3U3]# mkdir cd3
[root@ns AS3U3]# mkdir cd4
[root@ns AS3U3]# mount -t iso9660 rhel-3-U3-i386-as-disc101.iso cd1 -o loop,ro
[root@ns AS3U3]# mount -t iso9660 rhel-3-U3-i386-as-disc201.iso cd2 -o loop,ro
[root@ns AS3U3]# mount -t iso9660 rhel-3-U3-i386-as-disc301.iso cd3 -o loop,ro
[root@ns AS3U3]# mount -t iso9660 rhel-3-U3-i386-as-disc401.iso cd4 -o loop,ro
[root@ns AS3U3]# mkdir RPMS
[root@ns AS3U3]# cd RPMS
[root@ns RPMS]# ln -s ../cd1/RedHat/RPMS/*rpm .
[root@ns RPMS]# ln -s ../cd2/RedHat/RPMS/*rpm .
[root@ns RPMS]# ln -s ../cd3/RedHat/RPMS/*rpm .
[root@ns RPMS]# ln -s ../cd4/RedHat/RPMS/*rpm .
2 删除冲突软件包
kernel RPM不要使用升级方式安装,应该采用全新安装方式,因此首先删除所有kernel*rpm
[root@ns RPMS]# rm -f kernel*rpm (只是删除了临时建立的连接,源文件不会受到影响)
RPMS目录下面同时存在i386和i686RPM时使用rpm -F会有问题,应根据系统架构删除同名RPM。如果系统是i686(pentium pro及以后)架构,删除相应的i386的RPM包
列出所有i686 RPM:
[root@ns RPMS]# ls | grep i686
glibc-2.3.2-95.27.i686.rpm
nptl-devel-2.3.2-95.27.i686.rpm
openssl-0.9.7a-33.12.i686.rpm
删除重复的i386 RPM:
[root@ns RPMS]# rm -f glibc-2.3.2-95.27.i386.rpm
[root@ns RPMS]# rm -f nptl-devel-2.3.2-95.27.i386.rpm
[root@ns RPMS]# rm -f openssl-0.9.7a-33.12.i386.rpm
3 测试rpm冲突,因为AS3U3新添了一些软件包,同时把一些原来处于同一个包下面的包分开成了多个包(更合理了),所以需要首先测试系统软件包
各人的系统软件包不同,将会有不同的提示,下面只是我机器上面的示例,需要根据个人情况认真分析
[root@ns RPMS]# rpm -Fvh *rpm
error: Failed dependencies:
booty is needed by anaconda-9.1.3-3.RHEL
libdns.so.11 is needed by bind-9.2.4-EL3_10
libisc.so.7 is needed by bind-9.2.4-EL3_10
libisccc.so.0 is needed by bind-9.2.4-EL3_10
libisccfg.so.0 is needed by bind-9.2.4-EL3_10
liblwres.so.1 is needed by bind-9.2.4-EL3_10
libdns.so.11 is needed by bind-utils-9.2.4-EL3_10
libisc.so.7 is needed by bind-utils-9.2.4-EL3_10
liblwres.so.1 is needed by bind-utils-9.2.4-EL3_10
smtpdaemon is needed by mdadm-1.5.0-9
libmysqlclient.so.10 is needed by php-mysql-4.3.2-14.ent
librpm-4.2.so is needed by rpm-4.2.3-10
librpmbuild-4.2.so is needed by rpm-4.2.3-10
librpmdb-4.2.so is needed by rpm-4.2.3-10
librpmio-4.2.so is needed by rpm-4.2.3-10
librpm-4.2.so is needed by rpm-build-4.2.3-10
librpmbuild-4.2.so is needed by rpm-build-4.2.3-10
librpmdb-4.2.so is needed by rpm-build-4.2.3-10
librpmio-4.2.so is needed by rpm-build-4.2.3-10
librpm-4.2.so is needed by rpm-devel-4.2.3-10
librpmdb-4.2.so is needed by rpm-devel-4.2.3-10
librpmio-4.2.so is needed by rpm-devel-4.2.3-10
librpm-4.2.so is needed by rpm-python-4.2.3-10
librpmdb-4.2.so is needed by rpm-python-4.2.3-10
librpmio-4.2.so is needed by rpm-python-4.2.3-10
librpm-4.2.so is needed by (installed) net-snmp-5.0.9-2.30E.6
librpm-4.2.so is needed by (installed) net-snmp-perl-5.0.9-2.30E.6
librpmdb-4.2.so is needed by (installed) net-snmp-5.0.9-2.30E.6
librpmio-4.2.so is needed by (installed) net-snmp-5.0.9-2.30E.6
librpmio-4.2.so is needed by (installed) net-snmp-perl-5.0.9-2.30E.6
Suggested resolutions:
bind-9.2.2-21.i386.rpm
bind-utils-9.2.2-21.i386.rpm
booty-0.31.1-1.i386.rpm
mysql-3.23.58-1.i386.rpm
postfix-2.0.16-13.RHEL3.i386.rpm
rpm-4.2.2-0.14.i386.rpm
这里提示有很多冲突,不过这没关系,认真看Suggested
resolutions,如果某个软件包确实安装了原来系统默认版本,比如bind和rpm,却提示needed,那么一定是U3对这组软件包结构做了新
的修改。如果系统没有被依赖的软件包,那么可以肯定这个软件包是U3新添的,比如booty。
我升级了mysql到4.0.x,mailserver使用的是qmail,所以会有smtpdaemon和libmysqlclient的依赖问题。可
以先把存在依赖问题的包mdadm和php-mysql删除,待系统升级成功之后再重新安装。其它的deps都是因为RPM包重组造成的(AS3U3新加
了rpm-libs和bind-libs)。
删除真正存在冲突的软件包(我这里只有这两个包)
[root@ns RPMS]# rpm -e mdadm
[root@ns RPMS]# rpm -e php-mysql
4 安装预需求RPM
升级rpm包管理工具(U3系统新加了rpm-libs-4.2.3-10.i386.rpm)
[root@ns RPMS]# rpm -Uhv rpm-libs-4.2.3-10.i386.rpm
rpm-4.2.3-10.i386.rpm rpm-python-4.2.3-10.i386.rpm
rpm-build-4.2.3-10.i386.rpm rpm-devel-4.2.3-10.i386.rpm
安装booty(U3系统新加软件包):
[root@ns RPMS]# rpm -Uhv booty-0.31.1-1.i386.rpm
升级bind(U3系统新加了bind-libs-9.2.4-EL3_10.i386.rpm),
[root@ns RPMS]# rpm -Uhv bind-9.2.4-EL3_10.i386.rpm bind-utils-9.2.4-EL3_10.i386.rpm bind-libs-9.2.4-EL3_10.i386.rpm
在此之后可以重新运行rpm -Fvh *rpm 测试,如果没有新的依赖问题,就会直接进入下一步
5 升级系统
运行rpm升级整个系统
[root@ns RPMS]# rpm -Fvh *rpm
需要等待比较长的一段时间(一个完全安装的系统升级,约180个包,大概要15分钟,其中很多时间用来运行ldconfig),不过和重新安装配置系统相比,这点时间还是很短的。
6 重新安装前面临时删除的rpm包:
[root@ns RPMS]# rpm -ihv --nodeps mdadm-1.5.0-9.i386.rpm
[root@ns RPMS]# rpm -ihv --nodeps php-mysql-4.3.2-14.ent.i386.rpm
7 安装新内核
重新连接内核包到RPMS目录:
[root@ns RPMS]# ln -s ../cd1/RedHat/RPMS/kernel*rpm .
[root@ns RPMS]# ln -s ../cd2/RedHat/RPMS/kernel*rpm .
[root@ns RPMS]# ln -s ../cd3/RedHat/RPMS/kernel*rpm .
[root@ns RPMS]# ln -s ../cd4/RedHat/RPMS/kernel*rpm .
安装新内核:
[root@ns RPMS]# rpm -ihv kernel-2.4.21-20.EL.i686.rpm
kernel-unsupported-2.4.21-20.EL.i686.rpm
kernel-smp-2.4.21-20.EL.i686.rpm
kernel-smp-unsupported-2.4.21-20.EL.i686.rpm
如果系统安装了内核源码:
[root@ns RPMS]# rpm -Uhv kernel-source-2.4.21-20.EL.i386.rpm
8 OK,完工。现在cat /etc/issue应该显示
[root@ns RPMS]# cat /etc/issue
Red Hat Enterprise Linux AS release 3 (Taroon Update 3)
Kernel r on an m
重新启动!!!!
--------------------next---------------------
阅读(753) | 评论(0) | 转发(0) |