安装:
rpm {-i|--install} [install-options] PACKAGE_FILE...
install-options:
-h: 显示安装进度,更易看懂
-v: 显示安装过程的信息
-vv: 显示安装过程的详细信息
-vvv: 显示安装过程的更详细的信息
--test: 不执行真正安装,仅报告冲突信息
--force: 强制安装
--nodeps: 忽略依赖关系安装
--replacepkgs: 覆盖安装,若有配置文件修改过,则覆盖安装不会覆盖这些文件
例子:覆盖安装
[root@centos6 Packages]#rpm -ivh --replacepkgs zsh-4.3.11-8.el6.centos.x86_64.rpm
Preparing... ########################################### [100%]
1:zsh ########################################### [100%]
[root@centos6 Packages]#
卸载:
rpm {-e|-erase} [options] PACEAGE_NAME...
options:
--nodeps: 忽略依赖关系卸载
--test: 测试卸载,不是真正卸载,仅检测冲突信息
--allmatches: 如果一个程序包同时安装了多个版本,则一次全部卸载
注意:如果程序包有配置文件被修改过,则卸载时,这些文件不会被删除,而是重命名为file.rpmsave
后留存
例子:卸载zsh
[root@centos6 Packages]#rpm -e zsh
warning: /etc/zshrc saved as /etc/zshrc.rpmsave
[root@centos6 Packages]#
升级或回退版本:
rpm {-U|--upgrade} [install-options] PACKAGE_FILE...
-U: 升级或安装
rpm {-F|--freshen} [install-options] PACKAGE_FILE...
-F: 升级,若程序事先未安装,则不会安装
options:
--test:
--nodeps:
--oldpackage: 回退到旧版本
注意:
如果程序包有配置文件修改过,则升级时,新版本不会覆盖这些文件,而是把新版本的配置文件重命名
为file.rpmnew后保存
查询包相关信息:
rpm {-q|--query} [options] PACKAGE_NAME | PACKAGE_FILE
options:
rpm -qa: 查询系统已安装的所有包
rpm -q NAME: 查询某包是否安装
rpm -qf file: 查询某个文件是由哪个包安装生产的
rpm -qi NAEM: 查询某包的相关信息
rpm -ql NAME: 查询某包安装生成的文件列表
rpm -qc NAME: 查询某包安装后生成的所有配置文件
rpm -qd NAME: 查询某包安装后生成的帮助文件
rpm -q --changelog NAME: 查询包制作时的版本变更记录
rpm -q --provides NAME: 查询包提供的服务,接口
rpm -q --requires NAME: 查询包的依赖
rpm -q --scripts NAME: 查询包安装和卸载时所执行的脚本
脚本有四类:
preinstall: 安装前执行的脚本
postinstall: 安装后执行的脚本
preuninstall: 卸载前执行的脚本
postuninstall: 卸载后执行的脚本
以上都是已经安装包后的查询命令,但包还未安装时,查询命令需在上面命令的基础上加 -p,后面跟安装包
FILE
如: 未安装时查询包的安装后会生成哪些配置文件
rpm -qpc PACKAGE_FILE
下面的是应用实例:
查询/etc/zshrc文件由哪个包安装生成的:
[root@centos6 Packages]#rpm -qf /etc/zshrc
zsh-4.3.11-8.el6.centos.x86_64
[root@centos6 Packages]#
查询zsh包安装生成了哪些配置文件:
[root@centos6 Packages]#rpm -qc zsh
/etc/skel/.zshrc
/etc/zlogin
/etc/zlogout
/etc/zprofile
/etc/zshenv
/etc/zshrc
[root@centos6 Packages]#
查询rpm包安装或卸载时要执行的脚本:
[root@centos6 Packages]#rpm -q --scripts rpm
posttrans scriptlet (using /bin/sh):
# XXX this is klunky and ugly, rpm itself should handle this
dbstat=/usr/lib/rpm/rpmdb_stat
if [ -x "$dbstat" ]; then
if "$dbstat" -e -h /var/lib/rpm 2>&1 | grep -q "doesn't match environment version \| Invalid argument"; then
rm -f /var/lib/rpm/__db.*
fi
fi
exit 0
[root@centos6 Packages]#
zsh未安装时,查询zsh包的相关信息:
[root@centos6 Packages]#rpm -qpi zsh-4.3.11-8.el6.centos.x86_64.rpm
Name : zsh Relocations: (not relocatable)
Version : 4.3.11 Vendor: CentOS
Release : 8.el6.centos Build Date: Wed 20 Jun 2018 12:17:25 AM CST
Install Date: (not installed) Build Host: x86-01.bsys.centos.org
Group : System Environment/Shells Source RPM: zsh-4.3.11-8.el6.centos.src.rpm
Size : 5299361 License: BSD
Signature : RSA/SHA1, Wed 20 Jun 2018 07:43:15 PM CST, Key ID 0946fca2c105b9de
Packager : CentOS BuildSystem <http://bugs.centos.org>
URL : http://zsh.sunsite.dk/
Summary : A powerful interactive shell
Description :
The zsh shell is a command interpreter usable as an interactive login
shell and as a shell script command processor. Zsh resembles the ksh
shell (the Korn shell), but includes many enhancements. Zsh supports
command line editing, built-in spelling correction, programmable
command completion, shell functions (with autoloading), a history
mechanism, and more.
[root@centos6 Packages]#
安装后包校验:
rpm {-V|--verify} PACKAGE_NAME 检测包安装之后生成的文件是否发生过改变
当没有输出结果表示软件包为完整包,当有相应输出时表示对应的内容修改过
S: 文件大小被修改过
M: 文件的类型或属性、权限变动过
5: MD5值变动过
D: 设备主/次代码变动过
L: 路径变动过
U: 属主变动过
G: 属组变动过
T: mtime变动过
安装前包来源合法性和完整性检测:
rpm --import RPM-GPG-KEY-FILE 先导入合法的KEY文件
rpm {-K|--checksig} PACKAGE_FILE 验证
用yum安装时,/etc/yum.repos.d/下仓库配置里可以设置gpgkey gpgcheck来指明KEY文件路径,和
是否开启检测
rpm管理数据库:
[root@centos6 yum.repos.d]#rpm -qc rpm //查询rpm安装后生成的配置文件
/var/lib/rpm/Basenames
/var/lib/rpm/Conflictname
/var/lib/rpm/Dirnames
/var/lib/rpm/Filedigests
/var/lib/rpm/Group
/var/lib/rpm/Installtid
/var/lib/rpm/Name
/var/lib/rpm/Obsoletename
/var/lib/rpm/Packages
/var/lib/rpm/Providename
/var/lib/rpm/Provideversion
/var/lib/rpm/Pubkeys
/var/lib/rpm/Requirename
/var/lib/rpm/Requireversion
/var/lib/rpm/Sha1header
/var/lib/rpm/Sigmd5
/var/lib/rpm/Triggername
/var/lib/rpm/__db.001
/var/lib/rpm/__db.002
/var/lib/rpm/__db.003
/var/lib/rpm/__db.004
/var/lib/rpm/__db.005
/var/lib/rpm/__db.006
/var/lib/rpm/__db.007
/var/lib/rpm/__db.008
/var/lib/rpm/__db.009
[root@centos6 yum.repos.d]#
如上这些配置文件就是rpm包管理数据库和配置文件,这些文件不能删除,否则rpm将识别不到已安装的
rpm包。
如果这些配置文件有损坏,可用如下命令重建数据库(配置文件被全部删除后 ,似乎是不能恢复的)
rpm {--initdb|--rebuilddb} [-v] [--dbpath DIR]
--inittab: 初始化数据库
--rebuilddb: 重建数据库
默认数据库存放路径:/var/lib/rpm/