Linux RPM包管理-rpm命令
1、全名解释:
软件包全名:httpd-2.2.15-15.e16.centos.1.i686.rpm
包名:httpd
版本:2.2.15
发布的次数:15
适合的Linux平台:e16.centos
硬件平台:i686
说明:如noarch或没写,说明适合所有硬件平台
rpm包扩展名:rpm
注意:软件全名和包名不是一回事
2、RPM包依赖性
树形依赖:a->b->c
安装:先c,b,a
卸载:先a,b,c
环形依赖:a->b->c->a
需要同时用一条命令安装和卸载
模块依赖:查询网址:www.rpm.net
3、包全名与包名
包全名:安装一个全新的包,使用包全名并且需要注意路径
包名:安装一个已经装过的软件包,使用包名,是搜索/var/lib/rpm中的数据库
4、RPM安装
包全名:rpm -ivh
安装:-i(install)
显示详细信息:-v(verbose)
显示进度:-h(hash)
不检测依赖:--nodeps(只有做实验时使用)
5、RPM包升级
包全名:rpm -Uvh
升级:-U
其它与安装操作一样
6、RPM卸载
包名:rpm -e
卸载:-e(erase)
不检测依赖:--nodeps
7、RPM查询
是否安装:
包名:rpm -q 包名
查询:-q(query)
所有:-a(all)
软件包详情:rpm -qi 包名
查询软件信息:-i(information)
查询未安装包信息:-p(package)
查询包中文件安装位置:rpm -ql 包名
列表:-l(list)
查询未安装包信息:-p(package)
查询系统文件属于哪个RPM包:rpm -qf 系统文件名
查询系统文件属于哪个软件包:-f(file)
查询软件包的依赖性:rpm -qR 包名
查询软件包的依赖性:-R(requires)
查询未安装包信息:-p(package)
8、RPM校验:rpm -V 已装包名
校验指定RPM包中的文件:-V(verify)
验证信息表示:
S 文件大小是否改变
M 文件的类型或文件的权限(rwx)是否被改变
5 文件MD5校验和是否改变(可以看成文件内容是否改变)
D 设备中,从代码是否改变
L 文件路径是否改变
U 文件的熟悉(所有者)是否改变
G 文件的属组是否改变
T 文件的修改时间是否改变
文件类型:
c(config file)配置文件
d(documentation)普通文档
g(ghost file)“鬼”文件,很少见,就是该文件不应该被RPM包包含
l(license file)授权文件
r(read me)描述文件
9、RPM包中文件提取:rpm2cpio 包全名 |\ (连接符)cpio -idv .(当前)文件绝对路径
将rpm包转换为cpio格式的命令:rpm2cpio
提取文件标准工具:cpio 选项<[文件|设备]
说明: -i copy-in模式,还原
-d 还原时自动新建目录
-v 显示还原过程
还原操作过程:以ls为例
查询命令属于哪个软件包: rpm -qf /bin/ls
造成误删除假象:mv /bin/ls /tmp/
提取ls命令道当前目录:rpm2cpio /mnt/cdrom/Package/coreutils-8.4-19.e16.i686.rpm | cpio -idv ./bin/ls
复制回原目录,修复:cp /root/bin/ls /bin/
注意:在家目录下进行操作命令