zoukankan      html  css  js  c++  java
  • 通过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拷贝到同一个目录下,然后再升级。

  • 相关阅读:
    如何利用InstallShield for Delphi7打包Oracle9i客户端制作C/S数据库应用程序?
    delphi 保存 和 打开 TREE VIEW的节点已经展开的状态
    在Delphi中的TreeView中保存多个数据
    FastReport经验
    农码一生博文索引
    再讲IQueryable<T>,揭开表达式树的神秘面纱
    你知道C#中的Lambda表达式的演化过程吗?
    先说IEnumerable,我们每天用的foreach你真的懂它吗?
    Linq表达式、Lambda表达式你更喜欢哪个?
    你必须知道的EF知识和经验
  • 原文地址:https://www.cnblogs.com/poiqwe/p/2852394.html
Copyright © 2011-2022 走看看