一、RPM包的命名规则
如httpd-2.2.15-15.el6.centos.1.i686.rpm
httpd-2.2.15-15.el6.centos.1.i686.rpm:包全名
httpd:软件包名 2.2.15:软件版本
15:软件发布的次数 el6.centos:适合的Linux平台
i686:适合的硬件平台 rpm:rpm包的扩展名
包全名:操作的包是没有安装的软件包时,使用包全名,并且要注意路径
包名:操作已经安装的软件包时,使用包名,是搜索/var/lib/rpm/中的数据
二、依懒性
1、树形依赖:a→b→c
2、环形依赖:a→b→c→a(用命令同时安装abc)
3、模块依赖,系统 错只提示说缺少一个库/模块,库是在安装包内在安装完安装包就有的,但是不会提示这个缺少的库是出自与哪一个安装包,这时候可以通过www.rpmfind.net来搜索查找。
也可以使用yum命令来查找,如查找libstdc++.so.6出自于哪个软件包,使用命令yum whatprovides libstdc++.so.6或者yum resolvedep libstdc++.so.6可以查找到软件包名。
三、RPM包安装、升级和卸载
rpm -ivh 包全名:安装RPM包。
-i:安装 -v:显示详细信息 -h:显示进度
–nodeps:不检测依赖性(不推荐使用)
rpm -Uvh 包全名:升级RPM包
rpm -e 包名:卸载已经安装的RPM包
–nodeps:不检查依赖性(不推荐使用)
四、RPM包的查询
查询语法:rpm [-选项] [包名或包全名]
-q:查询(查询语句一般都含有该选项)
rpm -q 包名:查询是否安装该RPM包
rpm -qa:查询所有已经安装的RPM包
rpm -qa | grep 关键字:查询所有已经安装的包含关键字的RPM包
-i:详细信息
rpm -qi 包名:查询已安装软件包的详细信息
-p:查询未安装包(如果使用该选项,后面应该使用包全名)
-l:列出已安装包中文件安装位置或未安装包中文件默认安装位置
-f:查询文件属于哪个软件包(使用该选项后面应使用文件名)
-R:查询软件包的依赖性
五、RPM包校验
rpm -V 已安装的包名:校验指定RPM包中的文件,显示包中被修改过的文件
校验的显示信息说明:
S:文件大小是否改变 M:文件类型或者文件权限是否被改变
5:文件的MD5校验和是否改变(文件内容改变MD5也改变,所以可以看成检测内容是否修改)
D:设备的中,从代码是否改变 L:文件路径是否改变
U:文件的属主(所有者)是否改变 G:文件的属组是否改变
T:文件的修改时间是否改变
如果没有修改对应显示”.”,改变则显示上面的字符
后面有一个小写的字母,代表的意义是:
c:配置未见 d:普通文件
g:“鬼”文件(表示该文件不应该被这个RPM包包含,很少见)
l:授权文件 r:描述文件
六、从RPM包中提取指定的文件
语法:rpm2cpio 包全名 | cpio -idv .文件绝对路径
rpm2cpio命令将RPM包转换为cpio格式,2的意义是to。
cpio是一个标准工具,它用于创建软件档案文件和从档案文件中提取文件
-i:copy-in模式,提取还原
-d:还原时自动新建目录
-v:显示还原过程
如果在操作时误删除了某个系统文件(假入是mkdir命令文件)可以使用该方法:
1、在其他正常Linux系统中which mkdir查看mkdir的文件位置(/bin/mkdir)
2、在其他正常Linux系统中rpm -qf /bin/mkdir查看该文件属于哪个RPM包(coreutils-8.4-37.el6.x86_64)。
3、挂载系统光盘
4、在丢失文件的系统中运行rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-37.el6.x86_64.rpm | cpio -idv ./bin/mkdir
最后的”.”表示把后面的文件提取到当前目录
5、把提取到的文件复制到原目录,cp bin/mkdir /bin/mkdir

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux进阶新增用户24975 人正在系统学习中 相关资源:maestro:面向懒惰软件开发人员的智能部署系统-其它代码类资源…
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!