RPM(RPM Package Managment)是在centos或redhat中的包管理器, 用来安装程序的.
rpm的包的格式: 包名-版本-发行号.使用平台.rpm
包名: 程序名称, 例如 bash, httpd
版本: 包括,主版本号.副本号.发行号 例如 5.3.2
发行号: 指定的制作rpm包的发行号或后面加适用的操作系统. 例如3.centos6
使用平台. 使用的硬件平台, 例如, x86_64, noarch
几个常见rpm包例子:
php-5.3.3-38.el6.x86_64.rpm, mysql-5.1.73-3.el6_5.x86_64.rpm
包还分成主包和子包, 区别是子包在包名与版本号间加了个分包说明, 但后面的版本号等都是一样的.
例如, 第一个是php的主包, 其他都是它的分包
php-5.3.3-38.el6.x86_64.rpm php-mysql-5.3.3-38.el6.x86_64.rpm php-pecl-memcache-3.0.5-4.el6.x86_64.rpm php-cli-5.3.3-38.el6.x86_64.rpm php-odbc-5.3.3-38.el6.x86_64.rpm php-pgsql-5.3.3-38.el6.x86_64.rpm php-common-5.3.3-38.el6.x86_64.rpm php-pdo-5.3.3-38.el6.x86_64.rpm php-soap-5.3.3-38.el6.x86_64.rpm php-gd-5.3.3-38.el6.x86_64.rpm php-pear-1.9.4-4.el6.noarch.rpm php-xml-5.3.3-38.el6.x86_64.rpm php-ldap-5.3.3-38.el6.x86_64.rpm php-pecl-apc-3.1.9-2.el6.x86_64.rpm php-xmlrpc-5.3.3-38.el6.x86_64.rpm
包管理器的功能有: 安装, 卸载, 升级,查询, 校验, 数据库管理.
安装:
rpm 选项 包文件
-i: 安装
-v: 显示详细信息
-h:显示进度
[root@centos Packages]# rpm -ivh zip-3.0-1.el6.x86_64.rpm Preparing... ########################################### [100%] package zip-3.0-1.el6.x86_64 is already installed
--test: 和安装显示的一样, 但不是真正安装, 只是测试
--nodeps: 如果有需要安装依赖关系的文件,也会强行安装, 但安装后不一定可以运行.
--replacepkgs: 覆盖原有的程序, 但不替换配置文件, 新文件会在原目录下另存成为.rpmnew的文件
卸载:
rpm 选项 包名, 不是包文件
-e: 卸载
[root@centos Packages]# rpm -ivh php-common-5.3.3-38.el6.x86_64.rpm Preparing... ########################################### [100%] 1:php-common ########################################### [100%] [root@centos Packages]# rpm -e php-common
--nodeps: 不会有没有其他程序依赖这个包, 都删除
注意:如果程序被删除, 修改过的配置文件会存为.rpmsave文件
升级:
rpm 选项 包文件
-U: 升级或安装, 没有老版本就安装
-F: 只是升级, 没有老版本不安装
常用命令组合 -Uvh, -Fvh
查询:
rpm -q 包名: 查询包是否安装了
[root@centos Packages]# rpm -q lftp lftp-4.0.9-6.el6.x86_64 [root@centos Packages]# rpm -q php package php is not installed
rpm -ql 包名: 查询已经安装文件的所有安装的目录
[root@centos Packages]# rpm -ql zip /usr/bin/zip /usr/bin/zipcloak /usr/bin/zipnote /usr/bin/zipsplit /usr/share/doc/zip-3.0 /usr/share/doc/zip-3.0/CHANGES /usr/share/doc/zip-3.0/LICENSE /usr/share/doc/zip-3.0/README /usr/share/doc/zip-3.0/README.CR /usr/share/doc/zip-3.0/TODO /usr/share/doc/zip-3.0/WHATSNEW /usr/share/doc/zip-3.0/WHERE /usr/share/doc/zip-3.0/algorith.txt /usr/share/man/man1/zip.1.gz /usr/share/man/man1/zipcloak.1.gz /usr/share/man/man1/zipnote.1.gz /usr/share/man/man1/zipsplit.1.gz
rpm -qa: 列出所有安装的程序, 后面可以加grep过滤
[root@centos Packages]# rpm -qa | grep httpd.* httpd-tools-2.2.15-39.el6.centos.x86_64 httpd-2.2.15-39.el6.centos.x86_64
rpm -qf 程序文件: 查询文件是由那个安装包生成的
[root@centos Packages]# rpm -qf /etc/httpd/conf/httpd.conf httpd-2.2.15-39.el6.centos.x86_64
rpm -qi 程序名: 查询这个安装过的程序的详细信息
[root@centos Packages]# rpm -qi httpd Name : httpd Relocations: (not relocatable) Version : 2.2.15 Vendor: CentOS Release : 39.el6.centos Build Date: Fri 17 Oct 2014 01:49:26 AM AEDT Install Date: Sat 04 Jul 2015 12:18:17 PM AEST Build Host: c6b9.bsys.dev.centos.org Group : System Environment/Daemons Source RPM: httpd-2.2.15-39.el6.centos.src.rpm Size : 3085394 License: ASL 2.0 Signature : RSA/SHA1, Sat 18 Oct 2014 07:02:19 AM AEDT, Key ID 0946fca2c105b9de Packager : CentOS BuildSystem <http://bugs.centos.org> URL : http://httpd.apache.org/ Summary : Apache HTTP Server Description : The Apache HTTP Server is a powerful, efficient, and extensible web server
rpm -qc 程序名: 查询这个程序的配置文件路径
[root@centos Packages]# rpm -qc vsftpd /etc/logrotate.d/vsftpd /etc/pam.d/vsftpd /etc/vsftpd/ftpusers /etc/vsftpd/user_list /etc/vsftpd/vsftpd.conf
rpm -qd 程序名: 查询这个程序的帮助文件目录
[root@centos Packages]# rpm -qd zip /usr/share/doc/zip-3.0/CHANGES /usr/share/doc/zip-3.0/LICENSE /usr/share/doc/zip-3.0/README /usr/share/doc/zip-3.0/README.CR /usr/share/doc/zip-3.0/TODO /usr/share/doc/zip-3.0/WHATSNEW /usr/share/doc/zip-3.0/WHERE /usr/share/doc/zip-3.0/algorith.txt /usr/share/man/man1/zip.1.gz /usr/share/man/man1/zipcloak.1.gz /usr/share/man/man1/zipnote.1.gz /usr/share/man/man1/zipsplit.1.gz
rpm -q --scripts 程序名:查询这个程序要安装了那些相关脚本
[root@centos Packages]# rpm -q --scripts httpd preinstall scriptlet (using /bin/sh): # Add the "apache" user getent group apache >/dev/null || groupadd -g 48 -r apache getent passwd apache >/dev/null || \ useradd -r -u 48 -g apache -s /sbin/nologin \ -d /var/www -c "Apache" apache exit 0 postinstall scriptlet (using /bin/sh): # Register the httpd service /sbin/chkconfig --add httpd /sbin/chkconfig --add htcacheclean preuninstall scriptlet (using /bin/sh): if [ $1 = 0 ]; then /sbin/service httpd stop > /dev/null 2>&1 /sbin/chkconfig --del httpd /sbin/service htcacheclean stop > /dev/null 2>&1 /sbin/chkconfig --del htcacheclean fi posttrans scriptlet (using /bin/sh): test -f /etc/sysconfig/httpd-disable-posttrans || \ /sbin/service httpd condrestart >/dev/null 2>&1 || :
下面这些命令查询未安装包的信息, 后面接安装文件名
rpm -qp, rpm -qpl, rpm -qpi, rpm -qpc, rpm-qpd
校验:
包完整性: 检验特征码, 一般是用md5提取的特征码
包的来源: 用rpm制作者提供的公钥来,来解密特征码, 如果成功则说明来源可信
导入公钥
rpm --import 公钥
[root@centos cdrom]# rpm --import RPM-GPG-KEY-CentOS-6 [root@centos cdrom]# rpm -qa gpg* gpg-pubkey-0608b895-4bd22942 gpg-pubkey-c105b9de-4e0fd3a3 gpgme-1.1.8-3.el6.x86_64 gpg-pubkey-c105b9de-4e0fd3a3 [root@centos cdrom]# rpm -qi gpg-pubkey-c105b9de-4e0fd3a3 Name : gpg-pubkey Relocations: (not relocatable) Version : c105b9de Vendor: (none) Release : 4e0fd3a3 Build Date: Sat 04 Jul 2015 01:01:04 PM AEST Install Date: Sat 04 Jul 2015 01:01:04 PM AEST Build Host: localhost Group : Public Keys Source RPM: (none) Size : 0 License: pubkey Signature : (none) Summary : gpg(CentOS-6 Key (CentOS 6 Official Signing Key) <centos-6-key@centos.org>) Description : -----BEGIN PGP PUBLIC KEY BLOCK----- Version: rpm-4.8.0 (NSS-3) mQINBE4P06MBEACqn48FZgYkG2QrtUAVDV58H6LpDYEcTcv4CIFSkgs6dJ9TavCW NyPBZRpM2R+Rg5eVqlborp7TmktBP/sSsxc8eJ+3P2aQWSWc5ol74Y0OznJUCrBr bIdypJllsD9Fe+h7gLBXTh3vdBEWr2lR+xA+Oou8UlO2gFbVFQqMafUgU1s0vqaE /hHH0TzwD0/tJ6eqIbHwVR/Bu6kHFK4PwePovhfvyYD9Y+C0vOYd5Ict2vbLHz1f QBDZObv4M6KN3j7nzme47hKtdMd+LwFqxM5cXfM6b5doDulWPmuGV78VoX6OR7el x1tlfpuiFeuXYnImm5nTawArcQ1UkXUSYcTUKShJebRDLR3BycxR39Q9jtbOQ29R FumHginovEhdUcinRr22eRXgcmzpR00zFIWoFCwHh/OCtG14nFhefuZ8Z80qbVhW 2J9+/O4tksv9HtQBmQNOK5S8C4HNF2M8AfOWNTr8esFSDc0YA5/cxzdfOOtWam/w lBpNcUUSSgddRsBwijPuWhVA3NmA/uQlJtAo4Ji5vo8cj5MTPG3+U+rfNqRxu1Yc ioXRo4LzggPscaTZX6V24n0fzw0J2k7TT4sX007k+7YXwEMqmHpcMYbDNzdCzUer Zilh5hihJwvGfdi234W3GofttoO+jaAZjic7a3p6cO1ICMgfVqrbZCUQVQARAQAB tEZDZW50T1MtNiBLZXkgKENlbnRPUyA2IE9mZmljaWFsIFNpZ25pbmcgS2V5KSA8 Y2VudG9zLTYta2V5QGNlbnRvcy5vcmc+iQI8BBMBAgAmBQJOD9OjAhsDBQkSzAMA BgsJCAcDAgQVAggDBBYCAwECHgECF4AACgkQCUb8osEFud6ajRAAnb6d+w6Y/v/d MSy7UEy4rNquArix8xhqBwwjoGXpa37OqTvvcJrftZ1XgtzmTbkqXc+9EFch0C+w ST10f+H0SPTUGuPwqLkg27snUkDAv1B8laub+l2L9erzCaRriH8MnFyxt5v1rqWA mVlRymzgXK+EQDr+XOgMm1CvxVY3OwdjdoHNox4TdVQWlZl83xdLXBxkd5IRciNm sg5fJAzAMeg8YsoDee3m4khg9gEm+/Rj5io8Gfk0nhQpgGGeS1HEXl5jzTb44zQW qudkfcLEdUMOECbu7IC5Z1wrcj559qcp9C94IwQQO+LxLwg4kHffvZjCaOXDRiya h8KGsEDuiqwjU9HgGq9fa0Ceo3OyUazUi+WnOxBLVIQ8cUZJJ2Ia5PDnEsz59kCp JmBZaYPxUEteMtG3yDTa8c8jUnJtMPpkwpSkeMBeNr/rEH4YcBoxuFjppHzQpJ7G hZRbOfY8w97TgJbfDElwTX0/xX9ypsmBezgGoOvOkzP9iCy9YUBc9q/SNnflRWPO sMVrjec0vc6ffthu2xBdigBXhL7x2bphWzTXf2T067k+JOdoh5EGney6LhQzcp8m YCTENStCR+L/5XwrvNgRBnoXe4e0ZHet1CcCuBCBvSmsPHp5ml21ahsephnHx+rl JNGtzulnNP07RyfzQcpCNFH7W4lXzqM= =jrWY -----END PGP PUBLIC KEY BLOCK-----
rpm数据库:
rpm --inidb : 初始化, 没有库则重建
rpm --rebuidbd: 重建, 有没有数据库都重建
转载于:https://blog.51cto.com/jzrobbie/1700077