centos查询rpm包相关安装、卸载脚本

解压rpm包


RPM包括是使用cpio格式打包的,因此可以先转成cpio然后解压,如下所示:  
  
rpm2cpio xxx.rpm | cpio -div

解压了以后你会看到,实际上rpm包是这个程序所有的文件的集合,比如帮助文档,二进制程序,所依赖的库文件,而且解压后的主目录对应的就是linux系统根路径下的目录,比如解压后有etc,bin,usr三个目录,则分别对应linux系统根目录下的etc,bin,usr目录,所以rpm -i xxx.rpm这个命令无非是把解压后的文件和目录依照原先的层级结构原原本本的复制到linux系统对应的目录下

我们可以对安装的软件用命令rpm -ql softwarename 查看此软件生成的所有的文件以及目录

测试过程中,有时要测试开发自己打的rpm包,为了确认打包正确,需要查询rpm包相关安装、卸载脚本,可以使用命令:

[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

会有一些下面这些标识声明的脚本段

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 即相当于前面四个的总合

################

linux RPM包安装、更新、删除等操作命令简明总结, 如何查看yum安装的软件路径 ?

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 包

1. rpm -qa|grep 软件包名

2. rpm -ql 软件包名  (l是L的小写,不是坚线)

这里以hdf5软件包为例:

       首先采用 yum install hdf5

        #yum install hdf5

      #rpm -ql hdf5-1.8.7-1.el6.rf.x86_64

以下内容摘自<<Linux鸟哥的私房菜>>:

rpm 全名是 “RedHat Package Manager",简称则为RPM。当被这个软件管理机制是由Red Hat这家公司发展来的。RPM是以一种数据记录的方式来将你所需要的软件安装到你的Linux系统的一套管理机制。rpm的优点如下:

1. RPM内含已编译过的程序与设置文件等数据,可以让用户免除重新编译的困扰。

2. RPM在被安装之前,会先检查系统的硬盘容量、操作系统版本等,可避免文件被错误安装。

3. RPM文件本身提供软件版本信息、依赖属性软件名称、软件用途说明、软件所含文件信息,便于了解软件。

4. RPM管理的方式使用数据库记录RPM文件的相关参数,便于升级、删除、查询与验证。

RPM默认安装路径:

/etc

一些设置文件放置的目录如/etc/crontab

/usr/bin

一些可执行文件

/usr/lib

一些程序使用的动态函数库

/usr/share/doc

一些基本的软件使用手册与帮助文档

/usr/share/man

一些man page文件

你可能感兴趣的:(linux)