一、查看rpm包相关安装、卸载脚本
1.查看rpm安装卸载脚本命令:
# rpm -q –scripts package
[root@6 /]#rpm -q --scripts mysql postinstall scriptlet (using /bin/sh): /sbin/install-info /usr/share/info/mysql.info.gz /usr/share/info/dir /sbin/ldconfig preuninstall scriptlet (using /bin/sh): if [ $1 = 0 ]; then /sbin/install-info --delete /usr/share/info/mysql.info.gz /usr/share/info/dir || : fi postuninstall scriptlet (using /bin/sh): if [ $1 = 0 ] ; then /sbin/ldconfig fi
2.脚本段分类:
脚本中会有一些标识声明的脚本段
- preinstall scriptlet (using /bin/sh)::安装前执行脚本
- postinstall scriptlet (using /bin/sh)::安装后执行脚本
- preuninstall scriptlet (using /bin/sh)::卸载前执行脚本
- postuninstall scriptlet (using /bin/sh)::卸载后执行脚本
如果安装过程中,不想执行其中一个脚本,可以指定:
- -nopre:不执行安装前脚本
- –nopost:不执行安装后脚本
- –nopreun :不执行卸载前脚本
- –nopostun:不执行卸载后脚本
- 全部不执行,使用:–noscripts 即相当于前面四个的总合
二、RPM包安装、更新、删除等常用操作命令
1.常用命令:
- rpm -ivh package.rpm 安装一个rpm包
- rpm -ivh –nodeeps package.rpm 安装一个rpm包而忽略依赖关系警告
- rpm -U package.rpm 更新一个rpm包但不改变其配置文件
- rpm -F package.rpm 更新一个确定已经安装的rpm包
- rpm -e package_name.rpm 删除一个rpm包
- rpm -qa 显示系统中所有已经安装的rpm包
- rpm -qa | grep httpd 显示所有名称中包含 “httpd” 字样的rpm包
- rpm -qi package_name 获取一个已安装包的特殊信息
- rpm -qg “System Environment/Daemons” 显示一个组件的rpm包
- rpm -ql package_name 显示一个已经安装的rpm包提供的文件列表
- rpm -qc package_name 显示一个已经安装的rpm包提供的配置文件列表
- rpm -q package_name –whatrequires 显示与一个rpm包存在依赖关系的列表
- rpm -q package_name –whatprovides 显示一个rpm包所占的体积
- rpm -q package_name –scripts 显示在安装/删除期间所执行的脚本l
- rpm -q package_name –changelog 显示一个rpm包的修改历史
- rpm -qf /etc/httpd/conf/httpd.conf 确认所给的文件由哪个rpm包所提供
- rpm -qp package.rpm -l 显示由一个尚未安装的rpm包提供的文件列表
- rpm –import /media/cdrom/RPM-GPG-KEY 导入公钥数字证书
- rpm –checksig package.rpm 确认一个rpm包的完整性
- rpm -qa gpg-pubkey 确认已安装的所有rpm包的完整性
- rpm -V package_name 检查文件尺寸、 许可、类型、所有者、群组、MD5检查以及最后修改时间
- rpm -Va 检查系统中所有已安装的rpm包- 小心使用
- rpm -Vp package.rpm 确认一个rpm包还未安装
- rpm2cpio package.rpm | cpio –extract –make-directories *bin* 从一个rpm包运行可执行文件
- rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm 从一个rpm源码安装一个构建好的包
- rpmbuild –rebuild package_name.src.rpm 从一个rpm源码构建一个 rpm 包
小结:
安装 -ivh , –nodeps(忽略依赖关系警告),–replacepkgs(重新安装)
卸载:-e,–nodeps
升级:-Uvh(升级或安装),-Fvh(仅升级安装),–nodeps, –oldpackage(降级)
查询:
您暂时无权查看此隐藏内容!
校验:-V
验证程序包合法性,先导入GPG密钥: –import,-K(校验),–nodigest(校验时不检查完整性),–nosignature(不检查来源合法性)
数据库重建:–initdb, –rebuliddb
2.rpm优点:
- RPM内含已编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰。
- RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装。
- RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件信息,便于了解软件。
- RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证。
3.RPM默认安装路径:
/etc | 一些设置文件放置的目录如/etc/crontab |
/usr/bin | 一些可执行文件 |
/usr/lib | 一些程序使用的动态函数库 |
/usr/share/doc | 一些基本的软件使用手册与帮助文档 |
/usr/share/man | 一些man page文件 |
三、RPM包的强制安装和强制卸载
在做RPM软件适配的时候,经常会出现需要自己安装额外的安装包,包名中的版本号不一致也会出现提示,要安装统一版本号的软件包,并且还会出现对更新软件包的依赖,
1.在已经存在软件包的情况下,按需升级软件包,可以使用升级安装:
rpm -Uvh *.rpm
2.如果升级出错,可以执行强制安装实现对软件包的版本更新:
rpm -ivh --replacefiles --force --nodeps *.rpm
3.如果想要强制卸载某软件包,可以使用如下命令:
rpm -e *.rpm --nodeps
注意:在有很多依赖时,不推荐强制卸载,如果非要试一试,要做好系统备份啊~~
4.查看软件包安装脚本的命令:
rpm --script -qp *.rpm
参考琼杰笔记文档:
Ubuntu程序包管理工具之dpkg
评论前必须登录!
注册