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"。例:
这表示已经安装过的软件
这表示ssh未安装
(3)#rpm -qi rpm包名用于查看系统中已经安装的rpm包的完整信息,包括该包的版本信息,安装时间和大小等。例:
(4)#rpm -ql rpm包名用于查看该软件包都安装到了那些位置。例:
(5)#rpm -qf 文件名用于查看某个文件使用那个rpm包安装的。例:
(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:列出某个文件是否被改动过
例:
文件名前面有个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:问价你的创建时间已被改变
在光盘镜像中有数字证书的公钥文件,上面出现的是一个随机数,下面我们来导入
先导入,在进行查找pubkey,然后查看pubkey信息,如果现实查询结果,则表示导入成功了
检验一下
证明包的合法性和完整性ok,安装时就不会出现没有验证的提示了