首页 > 代码库 > 菜鸟的成长记录--linux之rpm

菜鸟的成长记录--linux之rpm

RPM

    什么是rpm?rpm是RPM package manager的缩写,最早由RedHat公司提出的软件包标准,后来随着rpm的不断发展而又增加许多功能,逐渐的成为linux公认的软件包管理标准。支持该格式的厂商有RedHat linux、suse linux、Mandriva linux。

 

Rpm的优点

    由于RPM是通过预编译并打包成为rpm文件格式后再加以安装的一种方式,并且还能够进行数据库的记载,所以RPM有以下优点:

    1.Rpm内含已经编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰

    2.Rpm在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装

    3.Rpm文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件等信息,便于了解软件。

    4.Rpm管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证。

 

    rpm命令十分强大,那么rpm命令究竟有什么功能呢?

    1 查询已安装在linux系统中的rpm软件包的信息

    2 查询rpm软件包安装文件的信息

    3 安装rpm软件包到当前linux系统

    4 从linux系统中卸载已安装的rpm软件包

    5 升级当前linux系统的rpm软件包

 

命令及参数

    (1)#rpm -qa后面不接参数用于查看系统中已经安装的所有的rpm包

    (2)#rpm -q rpm包名用于查看系统中是否安装了该软件包,如果安装了,系统会显示完整的包名;如果没有安装,系统会提示"package bas is not installed"。例:

    wKiom1PL5VSxWW24AAA3M-N8qLs353.jpg

    这表示已经安装过的软件

    wKioL1PL5qmC3eCVAAAoSuVK-Ic214.jpg

    这表示ssh未安装

    (3)#rpm -qi rpm包名用于查看系统中已经安装的rpm包的完整信息,包括该包的版本信息,安装时间和大小等。例:

    wKiom1PL5d2ChKuIAAE1wpTLD6U563.jpg

    (4)#rpm -ql rpm包名用于查看该软件包都安装到了那些位置。例:

    wKioL1PL542CMXVSAADR18lmUKE886.jpg

    (5)#rpm -qf 文件名用于查看某个文件使用那个rpm包安装的。例:

    wKiom1PL5riCvTLIAAA6EAg8_jo421.jpg

    (6)#rpm -qpi rpm包名和#rpm -qpl分别用于查看没有安装的包的信息,注意下和(4)、(5)的区别。

    (7)#rpm -ivh 包名用于安装rpm软件包,i代表安装、v代表可视化安装、h代表安装的时候显示进度。

    (8)#rpm -e rpm包名用于删除rpm软件包。rpm -e --nodeps 包名用于删除存在依存关系的软件包,该命令可以将和该包存在依存关系的所有的软件包统统删除。

    (9)#rpm -Urpm包名用于对rpm包的升级。

    (10)#rpm  -Uvh 升级或安装,如果没有安装,则自动安装,如果安装的旧版本就自动升级

    (11)#rpm  -Fvh 如果检测到该软件已经安装,则该软件不会安装,如果安装旧版本,则只升级。

  可执行参数

                     代表意义

--nodeps

使用时机:当发生软件属性依赖问题而无法安装,但你执意安装时

危险性:软件会有依赖性的原因是因为彼此会使用到对方的机制或功能,如果强制安装而不考虑软件的属性依赖,则可能会造成该软件的无法正常使用

--replacefiles

使用时机:如果在安装的过程当中出现了“某个文件已经被安装在你的系统上面”的信息,又或许出现版本不和的信息时,可以使用这个参数来直接覆盖文件

危险性:覆盖的操作是无法复原的,所以,你必须要很清楚的知道被覆盖的文件时真的可以被覆盖,否则就去哭吧

--replacepkgs

使用时机:重新安装某个已经安装过的软件。如果你要安装一堆rpm软件文件时,可以使用rpm –ivh *.rpm但若某些软件已经安装过了,此时系统会出现“某软件以安装”的信息,导致无法继续安装,此时可使用这个参数来重复安装

--force

使用时机:这个参数其实就是--replacefiles与--replacepkgs的综合体

--test

使用时机:想要测试一下该软件是否可以被安装到用户的linux环境当中,可找出是否有属性依赖的问题。

--justdb

使用时机:由于rpm数据库损坏或者是某些缘故产生错误时,可使用这个参数来更新软件在数据库内的相关信息

--nosignature

使用时机:想要略过数字证书的检查时,可以使用这个参数

--prefix新路径

使用时机:要将软件安装到其他非正规目录时。举例来说你想要将某软件安装到/usr/local而非正规的/bin,/etc等目录,就可以使用“—prefix/usr/local”来处理了

--noscripts

使用时机:不想让该软件在安装过程中自行执行某些系统命令

    通常使用的就是这些参数了,一般直接用-ivh,如果安装的过程中发现问题,就把问题找出来解决,不要用—force去强制安装,因为会发生更多的问题。

 

Rpm校验和数字证书验证

    用于检查包安装生成的文件属性是否发生变化。

     rpm -V package_name 若该软件所含的文件被改动过,才会列出来,如果没有任何信息,恭喜你,该软件所提供的文件没有被改动过。

    -Va:列出目前系统上面所有可能被改过的文件

    -Vp:列出该软件内可能被改动过的文件

    -Vf:列出某个文件是否被改动过

    例:

    wKiom1PL6cOTDnz-AAA_AaoDej8461.jpg    

    文件名前面有个c,然后就是一些奇怪的文字了,那个c代表的是configuration,就是设置文件的意思。前面的8个信息是:

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

    M Mode differs (includes permissions and file type):文件的类型或文件的属性(rwx)是否被改变,如果否可执行等参数已被改变

    5  digest (formerly MD5 sum) differs:MD5这一种指纹码的内容已经不同

    D  Device major/minor number mismatch:设备的主/次代码已经改变

    L   readLink(2) path mismatch link:路径已被改变

    U  User ownership differs:文件的所有者已被改变

    G  Group ownership differs:文件的所属用户组已被改变

    T   mTime differs:问价你的创建时间已被改变

    wKioL1PL7BejITIGAAL18oqa6FQ701.jpg

    在光盘镜像中有数字证书的公钥文件,上面出现的是一个随机数,下面我们来导入

    wKioL1PL7QGBq6XwAAG6V5PN8rM020.jpg

    先导入,在进行查找pubkey,然后查看pubkey信息,如果现实查询结果,则表示导入成功了

检验一下

    wKiom1PL7CSBNRxHAABnab6A8zk077.jpg

    证明包的合法性和完整性ok,安装时就不会出现没有验证的提示了

    wKiom1PL7GfBavkxAACB9eudMwI193.jpg

本文出自 “鱼儿” 博客,请务必保留此出处http://kyfish.blog.51cto.com/1570421/1440675

菜鸟的成长记录--linux之rpm