rpm 包详解
程序包的命名格式:name-VERSION.tar.gz
拆包:主包和分包
主包:name-VERSION-release.arch.rpm
支包:name-function-VERSION-release.arch.rpm
注意:程序包之间有时会存在依赖关系,依靠前端工具解决依赖关系
yum |
Rhel系列系统上的rpm包管理工具 |
apt-get |
debian/ubuntu包管理前端工具 |
zipper |
suse的rpm包管理工具 |
dnf |
Fedora 22+系统上的rpm包管理前端工具 |
程序包管理器:位置/var/lib/rpm/
rpm命令:rpm[OPTION]+PACKETFILE
*安装:-i/–install
*升级:-U/–update,
-F/–freshen
*卸载:-e/–erase
*查询:-q/–query
*校验:-V/–verify
*数据库维护:–builddb,–initdb
rpm安装
rpm
{-i|–install} [install-options] PACKAGE_FILE …
rpm -ivh +PACKETFILE
-ivh:i是安装;v是显示详细信息(vv)更详细的输出;h输出进度条,每个#表示2%进度
–test:测试安装,检查并报告依赖关系及冲突消息等
–nodeps:忽略依赖关系;(不建议)
–replacepkgs:重新安装
注意:rpm包可以自带脚本
perinstall |
安装过程开始之前运行的脚本 |
%pre |
postinstall |
安装过程完成之后运行的脚本 |
%post |
preuninstall |
卸载过程真正开始执行之前运行的脚本 |
%pre |
postuninstall |
卸载过程完成之后运行的脚本 |
%postun |
rpm升级:
rpm {-U|–upgrade} [install-options]
PACKAGE_FILE …
rpm {-F|–freshen} [install-options]
PACKAGE_FILE …
-U存在旧包,想删除旧包安装新包就用-Uvh
-F在旧包的基础上升级,就用-Fvh
rpm降级:–oldpackage
注意:1、不要对内核做升级,Linux支持多内核版本并存,因此,直接安装新版本内核
2、如果某原程序包的配置文件安装后曾被修改过,升级时,新版本的程序提供的同一个配置文件不会覆盖原有版本的配置文件,而是把新版本的配置文件重命名(FILENAME.rpmnew)后提供
rpm卸载
rpm -e PACKGE_NAME..
–allmatches 卸载所有匹配指定名称的程序包的各种版本
–nodeps 忽略依赖关系
–test 测试卸载
rpm查询
rpm +OPTION +PACKGE_NAME
-qa 查询所有安装的包
-qf 查询所有已经安装过的包
-qp 用于实现对未安装程序包的查询
-ql 查询程序安装生成的多有文件列表
-qi 查询软件包的详细信息
-qc 查询指定的程序包提供的配置文件
-qd 查询指定的程序包提供的文档
-q
–provides 列出指定的程序包提供的所有的CAPABILITY
-qR 查询指定的程序包的依赖关系
rpm校验
rpm
-V +PACKAGE_NAME
如未导入则导入公钥:rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-(6/7)
数据库的重建
rpm {–initdb|–rebuilddb}
[–dbpath DIRECTORY] [–root DIRECTORY]
–initdb:初始化数据库,当前无任何数据库可实始化创建一个新的;当前有时不执行任何操作;
–rebuilddb:重新构建,通过读取当前系统上所有已经安装过的程序包进行重新创建;
原创文章,作者:N27_flypig,如若转载,请注明出处:http://www.178linux.com/84871