RPM是什么?
RPM是 RPM Package Manager 缩写, 由红帽开发用于软件包的安装升级卸载与查询
RPM软件包命名规则
name:软件包名称 version::版本号, 主版本, 重大更新. 次版本, 子功能更新. 修订号, 修复bug release:发布版本 el6, el7 (hostnamectl) arch:系统平台, i386、x86_64(hostnamectl) 32位还是64位
RPM命令
安装
-i:安装 -h:显示安装进度 -v:显示信息 -vv:显示详细信息 --force:忽略软件包及文件的冲突 --test:测试是否能够安装成功 --nodeps:忽略依赖关系 --replacepkgs:强制重新安装已经安装的软件包 --replacefiles:替换属于其它软件包的文件 --replacepkgs:强制重新安装已经安装的软件包 --noscripts:不运行预安装和后安装脚本 --ftpproxy:用作为 FTP代理 --ftpport:指定FTP的端口号为
删除
-e:删除 --test:只执行删除的测试 --noscripts:不运行预安装和后安装脚本程序 --nodeps:不检查依赖性
升级
-U:升级 --test :进行升级测试 --force:强制重新安装 --force:忽略软件包及文件的冲突 --nodeps:不检查依赖性关系 -F --freshen:如果软件包已经安装,升级软件包
查询
-q:查看指定软件包是否安装 -qa:查看系统中已安装的所有RPM软件包列表 -qi:查看指定软件的详细信息 -ql:查询指定软件包所安装的目录、文件列表 查询已安装软件信息 -qc:查询指定软件包的配置文件 -qd:查询指定软件包的帮助文档 man手册 -qf:查询文件或目录属于哪个RPM软件 -q --scripts:查询rpm包安装前和安装后执行的脚本 -qip:查询未安装的rpm包详细信息 -qlp:查询未安装的软件包会产生哪些文件 --dump:显示每个文件的所有已校验信息
效验已安装的软件包
-V -f:校验所属的软件包 -a:Verify 校验所有的软件包 -g:校验所有属于组 的软件包 --noscripts:不运行校验脚本 --nodeps:不校验依赖性 --nofiles:不校验文件属性
效验软件包中的文件
-K --nopgp:不校验GPG签名
其它RPM选项
--rebuilddb:重建RPM资料库 --initdb:创建一个新的RPM资料库 --quiet:尽可能的减少输出 --help:显示帮助文件 --version:显示RPM的当前版本
RPM安装
某些RPM包安装是会有报错()
[root@dmxsp opt]# rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm
warning: mysql-community-server-5.7.30-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY
error: Failed dependencies:
mysql-community-client(x86-64) >= 5.7.9 is needed by mysql-community-server-5.7.30-1.el7.x86_64
mysql-community-common(x86-64) = 5.7.30-1.el7 is needed by mysql-community-server-5.7.30-1.el7.x86_64
报错如何解决
[root@dmxsp opt]# rpm -ivh mysql-community-server-5.7.30-1.el7.x86_64.rpm --force --nodeps warning: mysql-community-server-5.7.30-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ################################# [100%] Updating / installing... 1:mysql-community-server-5.7.30-1.e################################# [100%]
RPM删除
[root@dmxsp ~]# rpm -evh tree Preparing... ################################# [100%] Cleaning up / removing... 1:tree-1.6.0-10.el7 ################################# [100%]
RPM升级
[root@dmxsp opt]# rpm -Uvh mysql-community-server-5.7.30-1.el7.x86_64.rpm mysql-community-server-8.0.26 -1.el7.x86_64.rpm --force --nodepswarning: mysql-community-server-5.7.30-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY warning: package mysql-community-server-5.7.30-1.el7.x86_64 was already added, replacing with mysql-community-server-8.0.26-1.el7.x86_64 Preparing... ################################# [100%] Updating / installing... 1:mysql-community-server-8.0.26-1.e################################# [ 50%] Cleaning up / removing... 2:mysql-community-server-5.7.30-1.e################################# [100%]
RPM查询
[root@dmxsp ~]# rpm -q tree tree-1.6.0-10.el7.x86_64
[root@dmxsp ~]# rpm -qa tree tree-1.6.0-10.el7.x86_64
[root@dmxsp ~]# rpm -qi tree Name : tree Version : 1.6.0 Release : 10.el7 Architecture: x86_64 Install Date: Thu 19 May 2022 06:00:26 PM +08 Group : Applications/File Size : 89505 License : GPLv2+ Signature : RSA/SHA256, Fri 04 Jul 2014 01:36:46 PM +08, Key ID 24c6a8a7f4a80eb5 Source RPM : tree-1.6.0-10.el7.src.rpm Build Date : Tue 10 Jun 2014 03:28:53 AM +08 Build Host : worker1.bsys.centos.org Relocations : (not relocatable) Packager : CentOS BuildSystem <http://bugs.centos.org> Vendor : CentOS URL : http://mama.indstate.edu/users/ice/tree/ Summary : File system tree viewer Description : The tree utility recursively displays the contents of directories in a tree-like format. Tree is basically a UNIX port of the DOS tree utility.
[root@dmxsp ~]# rpm -ql tree /usr/bin/tree /usr/share/doc/tree-1.6.0 /usr/share/doc/tree-1.6.0/LICENSE /usr/share/doc/tree-1.6.0/README /usr/share/man/man1/tree.1.gz
[root@dmxsp ~]# rpm -qc mysql-community-server /etc/logrotate.d/mysql /etc/my.cnf
[root@dmxsp ~]# rpm -qd tree /usr/share/doc/tree-1.6.0/LICENSE /usr/share/doc/tree-1.6.0/README /usr/share/man/man1/tree.1.gz
[root@dmxsp ~]# rpm -qf /bin/tree tree-1.6.0-10.el7.x86_64
[root@dmxsp ~]# rpm -qip /opt/mysql-community-devel-8.0.26-1.el7.x86_64.rpm warning: /opt/mysql-community-devel-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY Name : mysql-community-devel Version : 8.0.26 Release : 1.el7 Architecture: x86_64 Install Date: (not installed) Group : Applications/Databases Size : 48648235 License : Copyright (c) 2000, 2021, Oracle and/or its affiliates. Under GPLv2 license as shown in the Description field. Signature : DSA/SHA256, Fri 02 Jul 2021 02:49:01 AM +08, Key ID 8c718d3b5072e1f5 Source RPM : mysql-community-8.0.26-1.el7.src.rpm Build Date : Thu 01 Jul 2021 04:54:44 PM +08 Build Host : pb2-el7-14.appad3iad.mysql2iad.oraclevcn.com Relocations : (not relocatable) Packager : MySQL Release Engineering <mysql-build@oss.oracle.com> Vendor : Oracle and/or its affiliates URL : http://www.mysql.com/ Summary : Development header files and libraries for MySQL database client applications Description : This package contains the development header files and libraries necessary to develop MySQL client applications.
[root@dmxsp ~]# rpm -qlp /opt/mysql-community-devel-8.0.26-1.el7.x86_64.rpm warning: /opt/mysql-community-devel-8.0.26-1.el7.x86_64.rpm: Header V3 DSA/SHA256 Signature, key ID 5072e1f5: NOKEY /usr/bin/mysql_config /usr/bin/mysql_config-64 /usr/include/mysql /usr/include/mysql/errmsg.h /usr/include/mysql/field_types.h /usr/include/mysql/my_command.h /usr/include/mysql/my_compress.h /usr/include/mysql/my_list.h /usr/include/mysql/mysql /usr/include/mysql/mysql.h /usr/include/mysql/mysql/client_plugin.h /usr/include/mysql/mysql/plugin_auth_common.h /usr/include/mysql/mysql/udf_registration_types.h /usr/include/mysql/mysql_com.h /usr/include/mysql/mysql_time.h /usr/include/mysql/mysql_version.h /usr/include/mysql/mysqld_error.h /usr/include/mysql/mysqlx_ername.h /usr/include/mysql/mysqlx_error.h /usr/include/mysql/mysqlx_version.h /usr/lib64/mysql/libmysqlclient.a /usr/lib64/mysql/libmysqlclient.so /usr/lib64/mysql/libmysqlservices.a /usr/lib64/pkgconfig/mysqlclient.pc /usr/share/aclocal/mysql.m4 /usr/share/doc/mysql-community-devel-8.0.26 /usr/share/doc/mysql-community-devel-8.0.26/LICENSE /usr/share/doc/mysql-community-devel-8.0.26/README /usr/share/man/man1/mysql_config.1.gz
RPM包校验
[root@dmxsp ~]# >/usr/bin/tree [root@dmxsp ~]# rpm -V tree S.5....T. /usr/bin/tree
S:文件的容量大小是否被改变 M:文件的类型或者文件的属性是否被修改 5:MD5这一种指纹加密的内容已经不同 文件内容变化 D:装置的主/次代码已经改变 L:路径已经被改变 U:文件的所属主已被修改 G:文件的所属组已被修改 T:文件的修改时间已被改变