1. RPM包命名规则
httpd-2.2.15-15.e16.centos.1.i686.rmp
gttpd————— 软件包
2.2.15 ———— 软件版本
15—————— 软件发布的次数
e16.centos—— 适合的linux平台
i686————— 适合的硬件平台
rpm————— rpm包扩展名
2. RPM包依赖性
树形依赖:a——>b——>c
环形依赖:a——>b——>c——>a
模块依赖:模块依赖查询网站:www.rpmfind.net
linux的光盘需要挂载,其命令如下:
先创建一挂载点:mkdir /mnt/cdrom
mount /dev/sr0 /mnt/scrom/
之后进入到光盘目录下:cd /mnt/cdrom/
ls 可看到所有文件都在
cd Packages
ls
rpm -ivh mysql-connector-odbc-5.1.5r1144-7.e16.i686.rpm //-i是安装;-v是显示安装信息;-h是显示安装过程
3. 包全名与包名
包全名:操作的包是没有安装的软件包时,使用包全名。且要注意路径。(安装和升级时用)
包名:操作已经安装的软件包时,使用包名。是搜索/var/lib/rpm/中的数据库。
4. RPM安装(包全名)
rpm -ivh 包全名
选项:
-i(install)——安装
-v(verbase)——显示详细信息
-h(hash)——显示进度
–nodeps——不检测依赖性
5. RPM包升级(包全名)
rpm -Uvh 包全名
选项:
-U(upgrade)——升级
6. 卸载
rpm -e 包名
选项:
-e(erase)——卸载
–nodeps——不检查依赖性
7. 查询是否安装
rpm -q 包名 //查询包是否安装
选项:
-q——查询(query)
rpm -qa//查询所有已经安装的RPM包
选项:
-a 所有(all)
8. 查询软件包详细信息
rpm -qi 包名
选项:
-i——查询软件信息(information)
-p——查询未安装包信息(package)(包全名)
8. 查询包中文件安装位置
rpm -ql 包名
选项:
-l——列表(list)
-p——查询未安装包信息(package)(包全名)
9. 查询系统文件属于哪个RPM包
rpm -qf 系统文件名
选项:
-f——(file)
10. 查询软件包的依赖性
rpm -qR 包名
选项:
-R——查询软件包的依赖性(requires)
-p——查询未安装包信息(package)(包全名)
11. RPM包校验
rpm -V 已安装的包名
选项:
-V——校验指定RPM包中的文件(verify)
验证内容中的8个信息具体内容如下:
- 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)
12. RPM包中文件提取
rpm2cpio 包全名 |
cpio -idv .文件绝对路径
rpm2cpio //将rpm包转换为pio格式的命令
cpio//是一个标准工具,它用于创建软件档案文件和档案文件中提取文件
标准格式】cpio 选项<[文件|设备]>
选项:
-i——copy-in模式,还原
-d——还原时自动新建目录
-v——显示还原过程
范例:
rpm -qf /bin/ls //查询ls命令属于哪个软件包
mv /bin/ls /tmp/ //造成ls命令误删除假象(尽量不要去试)
rpm2cpio /mnt/cdrom/Packages/coreutils-8.4-19.e16.i686.rpm | cpio -idv ./bin/ls
//提取RPM包中ls命令到当前目录的/bin/ls下
cp /root/bin/ls /bin/ // 把ls命令复制到/bin/目录,修复文件丢失