RPM包管理器
Red Hat Package Manager(简称RPM)。此工具包最先是由RedHat公司推出的,现在包括OpenLinux、S.u.S.E.以及Turbo Linux等Linux的分发版本都有采用, 由于它为Linux使用者省去了很多时间,所以被广泛应用于Linux软件的安装、卸载、升级、查询等软件管理操作。下面就以CentOS 6.6为例介绍一下它的具体下载及使用方法。
获取程序包的途径
1、系统的发行光盘镜像或官方站点
国内镜像站点:
mirrors.sohu.com
mirrors.163.com
mirrors.aliyun.com
2、程序包的官方站点
3、第三方组织:epel
https://fedoraproject.org/wiki/EPEL
4、搜索引擎
http://rpmfind.net
http://rpm.pbone.net
http://pkgs.org
RPM包的常用命令
安装命令 rpm –i.. + 软件包的全名
-h: 以#来表示安装进度;
-v, :显示安装过程中的详细信息;
也可以用-vv或-vvv显示更详细的安装信息
安装时常用的组合: -ivh, -ivvh
--test:不执行真正的安装过程,而仅报告依赖关系及冲突信息等;
--nodeps 忽略依赖关系安装 (不建议使用)
--replacepkgs 重新安装并覆盖原有的文件
--force 强制安装
例如# rpm -ivh vsftpd-2.2.2-12.el6_5.1.x86_64.rpm
# rpm -i --nodepsphp-5.3.3-38.el6.x86_64.rpm
升级命令
rpm ..+ 软件名
-U: 升级或安装
(如果软件原来已经安装就升级如果原来软件没有安装则执行安装操作
-F:升级
常用组合:-Uvh, -Fvh
--test 测试升级的过程及结果
--nodeps 忽略依赖关系升级
--force 强制升级
--oldpackage:降级到旧版本;
例如# rpm -Uvh --test php
卸载命令
rpm –e .. + 软件名
--nodeps:忽略依赖关系;
--test: 测试卸载;dry-run模式;
--allmatches: 如果一个程序包同时安装多个版本,则此选项一次全部卸载之;
例如 rpm -e --nodeps php
查询命令
rpm -q .. +软件包名
1、查询某包或某些包是否安装:
rpm -q
2、查询已经安装的所有包:
rpm -qa
3、查询某文件是由哪个包安装生成:
rpm -qf + 文件名(及其路径)
4、查询尚未安装的包文件的相关信息
-qp ..+ 软件包的全名
例如# rpm -qpi php-5.3.3-38.el6.x86_64.rpm
5、查询某包的简要说明信息:
rpm -qi
6、查询某包安装生成的文件列表:
rpm -ql
7、查询某包安装完成后生成的所有配置文件:
rpm -qc
8、查询某包安装完成后生成的所有帮助文件:
rpm -qd
9、查看某包制作时随版本变化的changelog信息:
rpm -q --changelog
10、查询某包提供的capabilities:
rpm -q --provides
11、查询某包所依赖的capabilities:
rpm -q --requires
12、查询某包安装或卸载时执行脚本:
rpm -q --scripts
校验合法性及完整性
查询包安装之后生成的文件是否发生了改变
常见用法:rpm -V 软件包名
验正其光盘中程序包的来源及完整性:
rpm --import /path/to/RPM-GPG-KEY-FILE
例如:# rpm --import RPM-GPG-KEY-CentOS-6
验正:rpm {-K|--checksig}PACKAGE_FILE
--nosignature: 不检查来源合法性
--nodigest: 不检查完整性
rpm管理器数据库:
数据库的路径/var/lib/rpm
重建数据库:
rpm..
--initdb: 初始化数据库,即数据库完全不存时,可新建之;
--rebuilddb: 无论当前数据存在与否,都会直接重建此库;