通过yum库安装或升级rpms的方法

  使用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拷贝到同一个目录下,然后再升级。

原文地址:https://www.cnblogs.com/poiqwe/p/2852394.html