使用yum工具升级系统或者安装rpm。
此方法特别适用于如下情况:
1) 升级系统但是没有新版本系统的ISO。
2) 要安装的rpm文件依赖于其他rpm,且依赖关系复杂。
步骤如下:
1. 若升级系统或安装rpm时,有ISO文件,则挂载ISO文件
mount -o loop xxx.iso /mnt
并直接跳到低4步执行。
若升级系统或安装rpm时,没有ISO文件,则继续执行第2步。
2. createrepo -v RPMS/
(前提:系统中安装了createrepo,否则请安装之)
此处RPMS为保存有升级或安装用rpm文件的目录。
命令执行结束后会在RPMS目录下生成repodata文件夹。
此步为升级或安装用rpm文件创建metadata file(xml文件),
即为yum创建rpm文件的索引。
3. rpm --import /mnt/RPM-GPG-KEY-redhat-*
iso中一般含有"beta"和"release"两个key文件,若使用其中之一遇到
某些rpm缺少key问题,请使用另一个。
(前提:iso is mounted on /mnt)
此步指定yum安装rpm文件时要参考的key文件。
4. cd /etc/yum.repos.d/
将其他所有*.repo文件备份为*.repo.bak文件,
确保此目录下不存在以.repo为后缀的文件。
5. vi test.repo
[local]
name=test
baseurl=file:///mnt/Server # 放置rpm包的路径
enabled=1
gpgcheck=0
baseurl处指定的值为包含有repodata目录的绝对路径。
因ISO文件中已经携带repodata目录,所以可以略过第2、3两步。
如果ISO里的rpm包存放在几个目录下,则需要在test.repo里添加相应文件夹的项目,可参考如下:
[Cluster]
name=Cluster
baseurl=file:///work1/ISO/Cluster
enabled=1
gpgcheck=0
[ClusterStorage]
name=ClusterStorage
baseurl=file:///work1/ISO/ClusterStorage
enabled=1
gpgcheck=0
[VT]
name=VT
baseurl=file:///work1/ISO/VT
enabled=1
gpgcheck=0
[Server]
name=Server
baseurl=file:///work1/ISO/Server
enabled=1
gpgcheck=0
此步使得yum工具能够根据生成的rpm文件索引,找到后面安装时
指定的rpm文件。
RHEL6系列的系统直接指定挂载目录即可,因为主目录下已建立repodata目录。
6. cd到RPMS目录中,
如: cd /mnt/Packages
7. 根据情况执行安装/升级:(可能会有问题,因为*.rpm会包含所有架构的包!)
安装rpm命令:yum -y --skip-broken install *.rpm
升级系统命令:yum -y --skip-broken update *.rpm
8. 任意目录执行:
yum clean all
yum list
yum update
注:1)"createrepo -v " make metadata file (xml)
< More efficient method >
create one repository on NFS or Network Server.
and several 5.6Beta access this common repository.
2)升级IA64时,可以把3个ISO中的*.rpm拷贝到同一个目录下,然后再升级。