语法: rpm -ivh /PATH/TO/PACKAGE_FILE …
常用选项:
安装软件包, 需要指定软件包绝对路径
//安装软件包, 需要指定软件包绝对路径
[root@localhost ~]# rpm -ivh /mnt/Packages/tree-1.6.0-10.el7.x86_64.rpm
[root@localhost ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
//在软件包所在目录下可以不指定绝对路径
[root@localhost ~]# cd /mnt/Packages/
[root@localhost Packages]# rpm -ivh zsh-5.0.2-28.el7.x86_64.rpm
命令 | 解释 |
---|---|
rpm -q PACKAGE_NAME | 查询指定的包是否已安装 |
rpm -qa | 查询已经安装的所有包 |
rpm -qi PACKAGE_NAME | 查询指定包的说明信息 |
rpm -ql PACKAGE_NAME | 查询指定软件包安装后生成的文件列表 |
rpm -qf /path/to/somefile | 查询指定的文件是由哪个rpm包安装生成的 |
rpm -qc PACKAGE_NAME | 查询指定包安装的配置文件 |
rpm -qd PACKAGE_NAME | 查询指定包安装的帮助文件 |
rpm -q --scripts PACKAGE_NAME | 查询指定包中包含的脚本 |
rpm -q --whatprovides CAPABILITY | 查询指定的CAPABILITY(能力)由哪个包所提供,如:rpm -q --whatprovides /bin/cat |
rpm -q --whatrequires CAPABILITY | 查询指定的CAPABILITY被哪个包所依赖 |
rpm -q --changelog COMMAND | 查询COMMAND的制作日志 |
rpm -q --scripts PACKAGE_NAME | 查询指定软件包包含的所有脚本文件 |
rpm -qR PACKAGE_NAME | 查询指定的软件包所依赖的CAPABILITY |
rpm -q --provides PACKAGE_NAME | 列出指定软件包所提供的CAPABILITY |
rpm -qpi /PATH/TO/PACKAGE_FILE | 查询指定未安装包的说明信息 |
rpm -qpl /PATH/TO/PACKAGE_FILE | 查询未安装的软件包会产生哪些文件 |
[root@hostnamectl ~]# rpm -q vsftpd
未安装软件包 vsftpd
[root@hostnamectl ~]# rpm -q vsftpd
vsftpd-3.0.2-22.el7.x86_64
[root@hostnamectl ~]# rpm -q vsftpd
vsftpd-3.0.2-22.el7.x86_64
[root@hostnamectl ~]# rpm -qa |grep vsftpd
vsftpd-3.0.2-22.el7.x86_64
[root@hostnamectl ~]# rpm -e vsftpd
[root@hostnamectl ~]# rpm -qa |grep vsftpd
[root@hostnamectl ~]#
注:如果其他包依赖于要卸载的包,这个被依赖的包是无法卸载的,除非强制卸载,强制卸载后依赖于这个包的其他程序将无法正常工作
[root@localhost ~]# rpm -V vsftpd
标识 | 解释 |
---|---|
S | 文件的容量大小是否被改变 |
M | 文件的类型或者文件的属性是否被修改 |
5 | MD5这一种指纹加密的内容已经不同 |
D | 装置的主/次代码已经改变 |
L | 路径已经被改变 |
U | 文件的所属主已被修改 |
G | 文件的所属组已被修改 |
T | 文件的创建时间已被改变 |
数据库信息在/var/lib/rpm目录中
rpm --rebuilddb:重建数据库,一定会重新建立
[root@hostnamectl ~]# ls /var/lib/rpm
Basenames __db.001 __db.003 Group Name Packages Requirename Sigmd5
Conflictname __db.002 Dirnames Installtid Obsoletename Providename Sha1header Triggername
[root@hostnamectl ~]# rpm --rebuilddb
[root@hostnamectl ~]# ls /var/lib/rpm
Basenames Conflictname Dirnames Group Installtid Name Obsoletename Packages Providename Requirename Sha1header Sigmd5 Triggername
rpm --initdb:初始化数据库,没有才建立,有就不用建立
[root@hostnamectl ~]# rpm --initdb
[root@hostnamectl ~]# ls /var/lib/rpm
Basenames __db.001 __db.003 Group Name Packages Requirename Sigmd5
Conflictname __db.002 Dirnames Installtid Obsoletename Providename Sha1header Triggername
加密类型:
/etc/pki/rpm-gpg/RPM-GPG-KEY-redhat-release //红帽官方公钥
rpm -K PACKAGE_FILE ,检查指定包有无密钥信息
dsa,gpg ,验证来源合法性,也即验证签名。可以使用–nosignatrue略过此项
sha1,md5 ,验证软件包完整性。可以使用–nodigest略过此项
[root@hostnamectl ~]# rpm -K /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
/mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm: RSA sha1 (MD5) PGP md5 不正确
[root@hostnamectl ~]# rpm -qpl /mnt/Packages/util-linux-2.23.2-43.el7.x86_64.rpm
警告:/mnt/Packages/util-linux-2.23.2-43.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
/etc/mtab
/etc/pam.d/chfn
/etc/pam.d/chsh
/etc/pam.d/login
/etc/pam.d/remote
/etc/pam.d/runuser
/etc/pam.d/runuser-l
/etc/pam.d/su
/etc/pam.d/su-l
/usr/bin/cal
/usr/bin/chfn
/usr/bin/chrt
/usr/bin/chsh
/usr/bin/col
/usr/bin/colcrt
/usr/bin/colrm
/usr/bin/column
/usr/bin/dmesg
/usr/bin/eject
/usr/bin/fallocate
/usr/bin/findmnt
/usr/bin/flock
/usr/bin/getopt
/usr/bin/hexdump
/usr/bin/i386
/usr/bin/ionice
/usr/bin/ipcmk
/usr/bin/ipcrm
/usr/bin/ipcs
/usr/bin/isosize
/usr/bin/kill
/usr/bin/linux32
/usr/bin/linux64
/usr/bin/logger
[root@hostnamectl ~]# rpm -ql util-linux
/etc/mtab
/etc/pam.d/chfn
/etc/pam.d/chsh
/etc/pam.d/login
/etc/pam.d/remote
/etc/pam.d/runuser
/etc/pam.d/runuser-l
/etc/pam.d/su
/etc/pam.d/su-l
/usr/bin/cal
/usr/bin/chfn
/usr/bin/chrt
/usr/bin/chsh
/usr/bin/col
/usr/bin/colcrt
/usr/bin/colrm
/usr/bin/column
/usr/bin/dmesg
/usr/bin/eject
/usr/bin/fallocate
/usr/bin/findmnt
/usr/bin/flock
...
[root@hostnamectl ~]# which mkdir
/usr/bin/mkdir
[root@hostnamectl ~]# rpm -qf /usr/bin/mkdir
coreutils-8.22-18.el7.x86_64
[root@hostnamectl ~]# ls
a abc accc add anaconda-ks.cfg cookie0001.txt wget-1.14-18.el7_6.1.x86_64.rpm
[root@hostnamectl ~]# rpm -qa |grep wget
wget-1.14-15.el7.x86_64
[root@hostnamectl ~]# rpm -Uvh wget-1.14-18.el7_6.1.x86_64.rpm
警告:wget-1.14-18.el7_6.1.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:wget-1.14-18.el7_6.1 ################################# [ 50%]
正在清理/删除...
2:wget-1.14-15.el7 ################################# [100%]
[root@hostnamectl ~]# rpm -qa |grep wget
wget-1.14-18.el7_6.1.x86_64
[root@hostnamectl ~]# rpm -e wget
[root@hostnamectl ~]# rpm -qa |grep wget
[root@hostnamectl ~]# rpm -Uvh wget-1.14-18.el7_6.1.x86_64.rpm
警告:wget-1.14-18.el7_6.1.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:wget-1.14-18.el7_6.1 ################################# [100%]
[root@hostnamectl ~]# rpm -qa |grep wget
wget-1.14-18.el7_6.1.x86_64
[root@hostnamectl ~]# rpm -qa |grep wget
wget-1.14-15.el7.x86_64
[root@hostnamectl ~]# rpm -Fvh wget-1.14-18.el7_6.1.x86_64.rpm
警告:wget-1.14-18.el7_6.1.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:wget-1.14-18.el7_6.1 ################################# [ 50%]
正在清理/删除...
2:wget-1.14-15.el7 ################################# [100%]
[root@hostnamectl ~]# rpm -qa |grep wget
wget-1.14-18.el7_6.1.x86_64
[root@hostnamectl ~]# rpm -e wget
[root@hostnamectl ~]# rpm -qa |grep wget
[root@hostnamectl ~]# rpm -Fvh wget-1.14-18.el7_6.1.x86_64.rpm
警告:wget-1.14-18.el7_6.1.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID f4a80eb5: NOKEY
[root@hostnamectl ~]# rpm -qa |grep wget
[root@hostnamectl ~]#
以下三种都可以
[root@hostnamectl ~]# which vsftpd
/usr/sbin/vsftpd
[root@hostnamectl ~]# rpm -q vsftpd
vsftpd-3.0.2-22.el7.x86_64
[root@hostnamectl ~]# rpm -qa |grep vsftpd
vsftpd-3.0.2-22.el7.x86_64
[root@hostnamectl ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/lib/systemd/system-generators/vsftpd-generator
/usr/lib/systemd/system/vsftpd.service
/usr/lib/systemd/system/vsftpd.target
/usr/lib/systemd/system/[email protected]
/usr/sbin/vsftpd
/usr/share/doc/vsftpd-3.0.2
/usr/share/doc/vsftpd-3.0.2/AUDIT
/usr/share/doc/vsftpd-3.0.2/BENCHMARKS
/usr/share/doc/vsftpd-3.0.2/BUGS
/usr/share/doc/vsftpd-3.0.2/COPYING
/usr/share/doc/vsftpd-3.0.2/Changelog
/usr/share/doc/vsftpd-3.0.2/EXAMPLE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD
...
[root@hostnamectl ~]# rpm -ql vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
/etc/vsftpd/vsftpd_conf_migrate.sh
/usr/lib/systemd/system-generators/vsftpd-generator
/usr/lib/systemd/system/vsftpd.service
/usr/lib/systemd/system/vsftpd.target
/usr/lib/systemd/system/[email protected]
/usr/sbin/vsftpd
/usr/share/doc/vsftpd-3.0.2
/usr/share/doc/vsftpd-3.0.2/AUDIT
/usr/share/doc/vsftpd-3.0.2/BENCHMARKS
/usr/share/doc/vsftpd-3.0.2/BUGS
/usr/share/doc/vsftpd-3.0.2/COPYING
/usr/share/doc/vsftpd-3.0.2/Changelog
/usr/share/doc/vsftpd-3.0.2/EXAMPLE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/README.configuration
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
/usr/share/doc/vsftpd-3.0.2/EXAMPLE/INTERNET_SITE_NOINETD
[root@hostnamectl ~]# rpm -qc vsftpd
/etc/logrotate.d/vsftpd
/etc/pam.d/vsftpd
/etc/vsftpd/ftpusers
/etc/vsftpd/user_list
/etc/vsftpd/vsftpd.conf
//先挂载
[root@hostnamectl ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 写保护,将以只读方式挂载
然后用rpm 工具 -i安装 -v显示过程 -h 显示进度
[root@hostnamectl ~]# rpm -ivh /mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm
警告:/mnt/Packages/vsftpd-3.0.2-22.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:vsftpd-3.0.2-22.el7 ################################# [100%]
[root@hostnamectl ~]# rpm -qa |grep vsftpd
vsftpd-3.0.2-22.el7.x86_64
[root@hostnamectl ~]# rpm -qa |grep httpd
[root@hostnamectl ~]# rpm -ivh --nodeps /mnt/Packages/httpd-2.4.6-67.el7.x86_64.rpm
警告:/mnt/Packages/httpd-2.4.6-67.el7.x86_64.rpm: 头V3 RSA/SHA256 Signature, 密钥 ID fd431d51: NOKEY
准备中... ################################# [100%]
正在升级/安装...
1:httpd-2.4.6-67.el7 ################################# [100%]
[root@hostnamectl ~]# rpm -qa |grep httpd
httpd-2.4.6-67.el7.x86_64
[root@hostnamectl ~]# rpm -q --whatrequires httpd-tools
httpd-2.4.6-67.el7.x86_64
[root@hostnamectl ~]# rpm -q httpd-tools
httpd-tools-2.4.6-67.el7.x86_64
[root@hostnamectl ~]# rpm -e httpd-tools
[root@hostnamectl ~]# rpm -q httpd-tools
未安装软件包 httpd-tools
[root@hostnamectl ~]#
-i | 安装 |
---|---|
-v | 显示详细信息 |
-h | 显示安装进度条 |
–test | 测试安装,但不真正执行安装过程 |
–nodeps | 忽略依赖关系 |
–replacepkgs | 重新安装,替换原有安装 |
–oldpackage | 降级 |
–force | 强行安装,可以实现重装或降级 |
–nodigest | 不检查包的完整性 |
–nosignature | 不检查包的来源合法性 |
–noscripts | 不执行程序包脚本片断 |
选项 | 解释 |
---|---|
rpm -q PACKAGE_NAME | 查询指定的包是否已安装 |
rpm -qa | 查询已经安装的所有包 |
rpm -qi PACKAGE_NAME | 查询指定包的说明信息 |
rpm -ql PACKAGE_NAME | 查询指定软件包安装后生成的文件列表 |
rpm -qf /path/to/somefile | 查询指定的文件是由哪个rpm包安装生成的 |
rpm -qc PACKAGE_NAME | 查询指定包安装的配置文件 |
rpm -qd PACKAGE_NAME | 查询指定包安装的帮助文件 |
rpm -q --scripts PACKAGE_NAME | 查询指定包中包含的脚本 |
rpm -q --whatprovides CAPABILITY | 查询指定的CAPABILITY(能力)由哪个包所提供 |
rpm -q --whatrequires CAPABILITY | 查询指定的CAPABILITY被哪个包所依赖 |
rpm -q --changelog COMMAND | 查询COMMAND的制作日志 |
rpm -q --scripts PACKAGE_NAME | 查询指定软件包包含的所有脚本文件 |
rpm -qR PACKAGE_NAME | 查询指定的软件包所依赖的CAPABILITY |
rpm -q --provides PACKAGE_NAME | 列出指定软件包所提供的CAPABILITY |
rpm -qpi /PATH/TO/PACKAGE_FILE | 查询指定未安装包的说明信息 |
rpm -qpl /PATH/TO/PACKAGE_FILE | 查询未安装的软件包会产生哪些文件 |
选项 | 解释 |
---|---|
rpm -Uvh /PATH/TO/NEW_PACKAGE_FILE | 如果装有老版本的,则升级;否则,则安装 |
rpm -Fvh /PATH/TO/NEW_PACKAGE_FILE | 如果装有老版本的,则升级;否则,退出 |
rpm --oldpackage | 降级 |