软件包管理器

 

软件包管理器

    软件包管理器其本身也是一个软件,其核心功能是:制作、安装、卸载、升级、查询、校验软件包等;

    在红帽中使用RMP软件包管理器,以及更加高端的YUM软件包管理器,本文就详细介绍一下这两个软件包管理器的用法。

一、RPM (PRM is Package Manager)

  1、rpm命令的使用:

    Rpm本身也是一个软件包,其背后有一个庞大的数据库:/var/lib/rpm

Rpm的主要功能有安装、查询、卸载、升级、校验、数据库的重建、验证数据包等

    安装软件包的原则:

             1)、软件包本身是合法的;

             2)、软件包是完整的

  2、rpm命名

    1)、包的组成成分:

          主包:

               bind-9.7.1-1.e15.i586.epm   

          子包:

               bind-libs-9.7.1-1.e15.i586.epm 

       其中bind-libs叫做包名

2)、包名格式:

            name-version- release.arch.rpm

 bind-major.minor.release-release.arch.rpm

  包名      主版本号   次版本号   发行号     

主版本号:重大改变

次版本号:某个子功能发生重大变化

发行号:修正了部分bug,调整了一点功能  

    bind-9.7.1.tar.gz   原版本号

 

3、rpm的安装

          rpm  -i  /PATH/TO/PACKAGE_FILE

               -h:以#显示进度,每个#表示2%;

               -v:显示详细过程

               -vv:显示更详细过程

          rpm -ivh /PATH/TO/PACKAGE_FILE

        --nodeps:忽略依赖关系

        --replacepkgs:重新安装,替换原有安装:

        --replacefiles:替换文件  

        --force:强行安装,可以实现重装或降级;

   4、rpm的查询

          rpm -q PACKAGE_NAME :查询指定的包是否已经安装

        rpm -qa :查询已经安装的所有包

         rpm -qi PACKAGE_NAME: 查询指定包的说明信息

        rpm -ql PACKAGE_NAME: 查询指定包安装后生成的文件列表   

        rpm -qc PACKAGE_NAME: 查询指定包安装的配置文件;

        rpm -qd PACKAGE_NAME: 查询指定包安装的帮助文件;  

        rpm -q --scripts PACKAGE _NAME: 查询指定包中包含的脚本

         rpm -qf /path/to/somefile :查询指定的文件是由哪个rpm包安装生成的;

      如果某rpm包尚未安装,我们需要查询其说明信息、安装以后会生成的文件

         rpm -qpi /PATH/TO/PACKAGE_FILE

         rpm -qpl 查询包安装后生成文件列表

  5、rpm升级

            rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE: 

        如果装有老版本的,则升级,否则,就安装

     

            rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE:

        如果装有老版本的,则升级,否则,退出

          --oldpackage:降级

  6、rpm卸载

            rpm -e PACKAGE_NAME  

        如果某软件包被其他包所依赖是不允许卸载的。

            -nodeps   卸载后没有信息

  7、rpm校验

        rpm -V PACKAGE_NAME   

  8、重建数据库

      rpm

   --rebuilddb:重建数据库,一定会重新建立;

   --initdb:初始化数据库,没有才建立,有就不用建立

  9、检验来源合法性,及软件包完整性;

        加密类型:

          对称:加密解密使用同一个密钥

      公钥:一堆密钥,公钥,私钥;公钥隐含于私钥中,可以提取出来,并公开出去

      单向

      #ls /etc/pki/rpm-gpg/

         RPM-GPG-KEY-redhat-release

    rpm -K /PAPT/TO/PACKAGE_FILE

   dsa,gpg:验证来源合法性,也即验证签名;可以使用--nosignature,略过此项

      shal,md5: 验证软件包完整性;可以使用--nodigest,略过此项

rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release:导入密钥文件

**********补充

    RPM安装:

        二进制格式:

    源程序-->编译-->二进制格式

    有些特性是编译选定的,如果编译未选定此特性,将无法使用;

  rpm包的版本会落后于源码包,甚至落后很多;

二、YUM    (Yellowdog  Update  Modifier )

   1、依赖关系:

       C/S: Client,Server

     yum整个工作是依赖yum仓库的。叫做-----yum repository

       文件服务:FTP /Web  /FILE

   2、Client  

     1)、 配置文件

        核心是yum仓库

            元数据文件:创建命令是  createrepo

        * yum所依赖的不是一个特定的包,而是一种能力;

     

    2)、 yum仓库中的元数据文件:

          primary.xml.gz  

             当前仓库所有RPM包的列表   

          flielists.xml.gz

             当前仓库中所有RPM包的所有文件列表;

          other.xml.gz

             额外信息,rpm 包的修改日志;

          ropomd.xml

             记录的是上面三个文件的时间戳和校验和;

 3、如何为yum定义repo文件

        [Repo_ID]

        name-description

        baseurl=

           ftp://

           http://

           file:///    注意:三个斜杠不是语法错误,而是在本地路径下的根

     enabled={1|0}

     gpgcheck={1|0}  这两个都默认是1

     gpgkey=

    yum [options]  [command]  [package...]  

      -y :自动回答为yes

      --nogpgcheck: 不做gpg检查

  4、list:  列表

      支持glob

        all:  所有的

        available:所有可用的,仓库中有,但还没安装的

        nstalled:已经安装的

        updates:可用的升级

     yum clean :   清理缓存

       [ packages | headers metadata | dbcache | all ]

  5、repolist:显示repo列表及其简要信息

         all

         enanled   默认

         disabled

     1)、 install:  安装

    yum install package_name

     2)、 update:升级

    update_to:升级指定版本

     3)、 remove | erase :卸载

  6、如何创建yum仓库:

       yum install createrepo:先安装yum命令

 mkdir -pv /yum/VT

 cp /media/cdrom/VT/*rph /yum/VT

 createrepo /yum/VT:创建yum源

 再在/etc/yum.repos.d 创建yum配置文件组

   元数据文件comps-rehl5-vt.xml /root

 

你可能感兴趣的:(linux,Linux入门,软件包管理器,linux软件包管理器)