文章目录
1. 软件包分类
1.1 源码包
- 脚本安装包
1.2 二进制包(RPM包 )
- 包命名规则
- 包名-版本-发布次数-适合Linux版本-适合硬件平台.rpm
- httpd-2.2.15-15.el7.centos.i686.rpm
- 包依赖性
- 树形依赖:a --> b --> c
- 环形依赖:a --> b --> c --> a
- 模块依赖:http://www.rpmfind.net/(模块依赖查询网站)
- 包全名和包名
- 操作的包是未安装包时使用包全名,注意路径
- 操作的包是已安装包时使用包名,从/var/lib/rpm数据库搜索
- 命令管理
- Yum管理(在线管理)
3. 解压RPM包
RPM包括是使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示:
- 解压整个RPM:rpm2cpio xxx.rpm | cpio -div
- 提取指定文件:rpm2cpio xxx.rpm | cpio -div . 文件全路径名
4. 常用的RPM软件包命令
说明 | 命令 |
---|---|
安装 | rpm -ivh filename.rpm |
升级 | rpm -Uvh filename.rpm |
卸载 | rpm -e filename.rpm |
查询所有已安装软件包 | rpm -qa |
查询软件包是否被安装 | rpm -q < rpm package name > |
rpm -qa | grep < rpm package name > | |
查询已安装软件包描述信息 | rpm -qi < rpm package name > |
查询未安装软件包描述信息 | rpm -qpi filename.rpm |
查询已安装软件包文件列表信息 | rpm -ql < rpm package name > |
查询未安装软件包文件列表信息 | rpm -qpl filename.rpm |
查询文件属于哪个软件包 | rpm -qf filename |
查询已安装包软件依赖性 | rpm -qR < rpm package name > |
查询未安装包软件依赖性 | rpm -qpR filename |
查询已安装软件包校验 | rpm -V < rpm package name > |
查询软件包安装脚本 | rpm -qp --scripts filename.rpm |
5. 命令详解
5.1 安装
命令格式:
rpm -i ( or --install) options file1.rpm … fileN.rpm
参数:
file1.rpm … fileN.rpm 将要安装的RPM包的文件名
详细选项:
-h (or --hash) 安装时输出hash记号 (``#’’)
–test 只对安装进行测试,并不实际安装。
–percent 以百分比的形式输出安装的进度。
–excludedocs 不安装软件包中的文档文件
–includedocs 安装文档
–replacepkgs 强制重新安装已经安装的软件包
–replacefiles 替换属于其它软件包的文件
–force 忽略软件包及文件的冲突
–noscripts 不运行预安装和后安装脚本
–prefix 将软件包安装到由 指定的路径下
–ignorearch 不校验软件包的结构
–ignoreos 不检查软件包运行的操作系统
–nodeps 不检查依赖性关系
–ftpproxy 用 作为 FTP代理
–ftpport 指定FTP的端口号为
通用选项
-v 显示附加信息
-vv 显示调试信息
–root 让RPM将指定的路径做为"根目录",这样预安装程序和后安
装程序都会安装到这个目录下
–rcfile 设置rpmrc文件为
–dbpath 设置RPM 资料库存所在的路径为
5.2 删除
命令格式:
rpm -e ( or --erase) options pkg1 … pkgN
参数
pkg1 … pkgN :要删除的软件包
详细选项
–test 只执行删除的测试
–noscripts 不运行预安装和后安装脚本程序
–nodeps 不检查依赖性
通用选项
-vv 显示调试信息
–root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装
程序都会安装到这个目录下
–rcfile 设置rpmrc文件为
–dbpath 设置RPM 资料库存所在的路径为
5.3 升级
命令格式
rpm -U ( or --upgrade) options file1.rpm … fileN.rpm
参数
file1.rpm … fileN.rpm 软件包的名字
详细选项
-h (or --hash) 安装时输出hash记号 (``#’’)
–oldpackage 允许"升级"到一个老版本
–test 只进行升级测试
–excludedocs 不安装软件包中的文档文件
–includedocs 安装文档
–replacepkgs 强制重新安装已经安装的软件包
–replacefiles 替换属于其它软件包的文件
–force 忽略软件包及文件的冲突
–percent 以百分比的形式输出安装的进度。
–noscripts 不运行预安装和后安装脚本
–prefix 将软件包安装到由 指定的路径下
–ignorearch 不校验软件包的结构
–ignoreos 不检查软件包运行的操作系统
–nodeps 不检查依赖性关系
–ftpproxy 用 作为 FTP代理
–ftpport 指定FTP的端口号为
通用选项
-v 显示附加信息
-vv 显示调试信息
–root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
–rcfile 设置rpmrc文件为
–dbpath 设置RPM 资料库存所在的路径为
5.4 查询
命令格式:
rpm -q ( or --query) options
参数:
pkg1 … pkgN :查询已安装的软件包
详细选项
-p (or ``-’’) 查询软件包的文件
-f 查询属于哪个软件包
-a 查询所有安装的软件包
–whatprovides 查询提供了 功能的软件包
-g 查询属于 组的软件包
–whatrequires 查询所有需要 功能的软件包
信息选项
显示软件包的全部标识
-i 显示软件包的概要信息
-l 显示软件包中的文件列表
-c 显示配置文件列表
-d 显示文档文件列表
-s 显示软件包中文件列表并显示每个文件的状态
–scripts 显示安装、卸载、校验脚本
–queryformat (or --qf) 以用户指定的方式显示查询信息
–dump 显示每个文件的所有已校验信息
–provides 显示软件包提供的功能
–requires (or -R) 显示软件包所需的功能
通用选项
-v 显示附加信息
-vv 显示调试信息
–root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
–rcfile 设置rpmrc文件为
–dbpath 设置RPM 资料库存所在的路径为
5.5 校验已安装的软件包
命令格式:
rpm -V ( or --verify, or -y) options
参数
pkg1 … pkgN 将要校验的软件包名
软件包选项
-p Verify against package file
-f 校验所属的软件包
-a Verify 校验所有的软件包
-g 校验所有属于组 的软件包
详细选项
–noscripts 不运行校验脚本
–nodeps 不校验依赖性
–nofiles 不校验文件属性
通用选项
-v 显示附加信息
-vv 显示调试信息
–root 让RPM将指定的路径做为"根目录",这样预安装程序和后安装程序都会安装到这个目录下
–rcfile 设置rpmrc文件为
–dbpath 设置RPM 资料库存所在的路径为
5.6 校验软件包中的文件
语法:
rpm -K ( or --checksig) options file1.rpm … fileN.rpm
参数:
file1.rpm … fileN.rpm 软件包的文件名
Checksig–详细选项
–nopgp 不校验PGP签名
通用选项
-v 显示附加信息
-vv 显示调试信息
–rcfile 设置rpmrc文件为
5.7 其它RPM选项
–rebuilddb 重建RPM资料库
–initdb 创建一个新的RPM资料库
–quiet 尽可能的减少输出
–help 显示帮助文件
–version 显示RPM的当前版本
如果想查看rpm包里面的内容使用命令:
rpm -qpl xxxx.rpm
如果想查看rpm包里面的内容导出,而不是安装,使用命令:
rpm2cpio xxx.rpm | cpio -idv