linux软件包管理之RPM

    RPM是RHEL的一款后端软件包管理工具;全称为RedHat Package Manage,由RedHat公司开发,主要作为RehHat Linux软件包的管理机制之一,但并未用作商业用途,而是遵循GPL协议,其设计理念是开放的;现包括SUSE、Openlinux等发行版都采用,是非常强大的软件管理工具。

    RPM是以一种数据库记录的方式来将需要的软件包安装到linux系统的一套管理机制,最大特点是:

        1、由于软件包是已经编译过且打包完毕的,所以软件传输与安装很方便

        2、由于软件安装之后信息都记录在数据库中,很方便查询,升级与卸载

                数据库在/var/lib/rpm

        3、RPM不仅是作为软件包管理的工具,还可以进行制作软件包,将源码格式编译后经过处理,制作成rpm格式的软件包

    RPM也有缺点,就是对软件之间的依赖关系不能很好的处理,例如A依赖B,B依赖C这样还好,顺序安装就可以,但是在linux中有可能会出现A依赖B,B依赖C,而C却依赖A,这样就让人很头疼了,所以就有了另一种软件管理机制yum,yum就是为了处理软件依赖关系而产生的。

    RPM的命名格式,RPM有主包和子包之分

    


    

    1、安装

        rpm -i{vh} PACKAGE_FILE

            -i:安装

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

            -v:显示详细信息

                -ivh也是常用组合选项

    

            -vv:显示更详细信息

                --nodeps:忽略依赖关系

                --prefix:指定软件的安装路径

                --replacefiles:解决安装过程中出现某些文件已经被被安装在系统上,则直接覆盖

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

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

                --test:测试依赖关系

    

    2、查询

        rpm -q{ilcdf} PACKAGE_NAME

            -q:查询

     

            -i:查询指定包的说明信息

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

            -c:查询指定包生成的配置文件

            -d:查询指定包的帮助文件

            --scripts PACKAGE_NAME:查询指定包中包含的脚本

     

            -f /PATH/FILE:查询指定的文件是由哪个rpm包生成的

            如果某个rpm包尚未安装,查询说明信息、安装后要生成的文件使用

                rpm -qfi PACKAGE_NAME

                rpm -qfl PACKAGE_NAME

    3、升级

        rpm -U PACKAGE_NAME:如果装有老版本,则升级否则,则安装

        rpm -F PACKAGE_NAME:如果装有老版本,则升级否则,则退出

            --oldpackage:降级

    4、卸载

        rpm -e PACKAGE_NAME

            --nodeps:忽略依赖关系

    

    5、校验

        rpm -V{apf} PACKAGE_NAME:校验文件,没有返回值则表示没有修改过任何文件

            -a:校验目前系统上面所有可能被更劢过的文件

            -p:校验软件内可能被更改过的文件

            -f:校验某个文件是否被更改过

                返回值的属性信息:

                S :文件的容量大小是否被改变

                M :文件的类型和文件的属性 (rwx) 是否被改变

                5 :MD5 值是否相同

                D :设备的主/次代码是否改变

                L :Link 路径已被改变

                U :文件的属主已被改变

                G :文件的所属组已被改变

                T :文件的建立时间已被改变

    6、重建数据库

        rpm -- rebuilddb:重建数据库

        rpm --initdb:初始化数据库

    7、检查来源合法性及软件包完整性

        /etc/pki/rpm-gpg/存放RedHat释出的公钥

    

        导入秘钥文件:

            rpm --export /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6

        rpm -K PACKAGE_NAME:检验文件

            dsa,gpg:检验来源合法性,也即验证签名

            sha1,md5:验证完整性

                --nosignature:忽略签名

                --nodigest:忽略验证完整性

    

    

本文出自 “杆儿男” 博客,请务必保留此出处http://wtime.blog.51cto.com/8829658/1540208

linux软件包管理之RPM,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。