rpm命令

rpm命令

查询已安装的RPM软件信息

rpm -q不能单独使用,需要配合使用

a    all
i    information
l    list
c    etc
d    declare
R    Required
-qa:查看系统中已安装的所有RPM软件包列表
-qi:查看指定软件的详细信息(information)
-ql:列出该软件所有的文件与目录所在的完整文件名(list)
-qc:列出该软件所有的配置文件(找出在/etc下的文件)
-qd:列出该软件所有的说明文件(找出与man相关的文件)
-qR:列出与该软件有关的依赖软件所含的文件(Required)

使用

[root@localhost home]# rpm -qa | wc -l
1516
[root@localhost home]# rpm -qi openssh
Name        : openssh                      Relocations: (not relocatable)
Version     : 5.3p1                             Vendor: CentOS
Release     : 94.el6                        Build Date: 2013年11月22日 星期五 17时37分44秒
Install Date: 2023年11月16日 星期四 11时11分57秒      Build Host: c6b8.bsys.dev.centos.org
Group       : Applications/Internet         Source RPM: openssh-5.3p1-94.el6.src.rpm
Size        : 736702                           License: BSD
Signature   : RSA/SHA1, 2013年11月24日 星期日 14时30分00秒, Key ID 0946fca2c105b9de
Packager    : CentOS BuildSystem <http://bugs.centos.org>
URL         : http://www.openssh.com/portable.html
Summary     : An open source implementation of SSH protocol versions 1 and 2
Description :
SSH (Secure SHell) is a program for logging into and executing
commands on a remote machine. SSH is intended to replace rlogin and
rsh, and to provide secure encrypted communications between two
untrusted hosts over an insecure network. X11 connections and
arbitrary TCP/IP ports can also be forwarded over the secure channel.

OpenSSH is OpenBSD's version of the last free version of SSH, bringing
it up to date in terms of security and features.

This package includes the core files necessary for both the OpenSSH
client and server. To make this package useful, you should also
install openssh-clients, openssh-server, or both.
[root@localhost home]# rpm -ql openssh
/etc/ssh
/etc/ssh/moduli
/usr/bin/ssh-keygen
/usr/libexec/openssh
/usr/libexec/openssh/ssh-keysign
/usr/share/doc/openssh-5.3p1
/usr/share/doc/openssh-5.3p1/CREDITS
/usr/share/doc/openssh-5.3p1/ChangeLog
/usr/share/doc/openssh-5.3p1/INSTALL
/usr/share/doc/openssh-5.3p1/LICENCE
/usr/share/doc/openssh-5.3p1/OVERVIEW
/usr/share/doc/openssh-5.3p1/PROTOCOL
/usr/share/doc/openssh-5.3p1/PROTOCOL.agent
/usr/share/doc/openssh-5.3p1/PROTOCOL.certkeys
/usr/share/doc/openssh-5.3p1/README
/usr/share/doc/openssh-5.3p1/README.dns
/usr/share/doc/openssh-5.3p1/README.nss
/usr/share/doc/openssh-5.3p1/README.platform
/usr/share/doc/openssh-5.3p1/README.privsep
/usr/share/doc/openssh-5.3p1/README.smartcard
/usr/share/doc/openssh-5.3p1/README.tun
/usr/share/doc/openssh-5.3p1/TODO
/usr/share/doc/openssh-5.3p1/WARNING.RNG
/usr/share/man/man1/ssh-keygen.1.gz
/usr/share/man/man8/ssh-keysign.8.gz
[root@localhost home]# rpm -qc openssh
/etc/ssh/moduli
[root@localhost home]# rpm -qd openssh
/usr/share/doc/openssh-5.3p1/CREDITS
/usr/share/doc/openssh-5.3p1/ChangeLog
/usr/share/doc/openssh-5.3p1/INSTALL
/usr/share/doc/openssh-5.3p1/LICENCE
/usr/share/doc/openssh-5.3p1/OVERVIEW
/usr/share/doc/openssh-5.3p1/PROTOCOL
/usr/share/doc/openssh-5.3p1/PROTOCOL.agent
/usr/share/doc/openssh-5.3p1/PROTOCOL.certkeys
/usr/share/doc/openssh-5.3p1/README
/usr/share/doc/openssh-5.3p1/README.dns
/usr/share/doc/openssh-5.3p1/README.nss
/usr/share/doc/openssh-5.3p1/README.platform
/usr/share/doc/openssh-5.3p1/README.privsep
/usr/share/doc/openssh-5.3p1/README.smartcard
/usr/share/doc/openssh-5.3p1/README.tun
/usr/share/doc/openssh-5.3p1/TODO
/usr/share/doc/openssh-5.3p1/WARNING.RNG
/usr/share/man/man1/ssh-keygen.1.gz
/usr/share/man/man8/ssh-keysign.8.gz
[root@localhost home]# rpm -qR openssh
/sbin/nologin  
audit-libs >= 1.0.8
config(openssh) = 5.3p1-94.el6
initscripts >= 5.20
libc.so.6  
libc.so.6(GLIBC_2.0)  
libc.so.6(GLIBC_2.1)  
libc.so.6(GLIBC_2.1.3)  
libc.so.6(GLIBC_2.2)  
libc.so.6(GLIBC_2.3)  
libc.so.6(GLIBC_2.3.4)  
libc.so.6(GLIBC_2.4)  
libc.so.6(GLIBC_2.8)  
libcom_err.so.2  
libcrypt.so.1  
libcrypto.so.10  
libcrypto.so.10(OPENSSL_1.0.1)  
libcrypto.so.10(libcrypto.so.10)  
libdl.so.2  
libdl.so.2(GLIBC_2.0)  
libdl.so.2(GLIBC_2.1)  
libfipscheck.so.1  
libgssapi_krb5.so.2  
libk5crypto.so.3  
libkrb5.so.3  
libnsl.so.1  
libnss3.so  
libnss3.so(NSS_3.2)  
libnss3.so(NSS_3.3)  
libnss3.so(NSS_3.4)  
libnss3.so(NSS_3.6)  
libnss3.so(NSS_3.9)  
libnss3.so(NSS_3.9.2)  
libplc4.so  
libresolv.so.2  
libresolv.so.2(GLIBC_2.0)  
libresolv.so.2(GLIBC_2.2)  
libselinux >= 1.27.7
libutil.so.1  
libz.so.1  
rpmlib(CompressedFileNames) <= 3.0.4-1
rpmlib(FileDigests) <= 4.6.0-1
rpmlib(PayloadFilesHavePrefix) <= 4.0-1
rtld(GNU_HASH)  
rpmlib(PayloadIsXz) <= 5.2-1

查询文件/目录属于哪个RPM软件

[root@hecs-98663 ~]# rpm -qf /etc/ssh
openssh-7.4p1-22.el7_9.x86_64

若发现找不到,但自己确信装了,那就是rpm数据库坏了
修复:
[root@localhost home]# rpm  --rebuilddb
[root@localhost home]# rpm -qf /etc/ssh
openssh-5.3p1-94.el6.i686

或者
rpm --initdb

查询未安装的RPM包文件

-qp后接的所有参数与上面说明的一致,但用途仅在找出某个RPM文件内的信息,而非已安装的软件信息
[root@localhost home]# rpm -qpi jdk-8u131-linux-i586.rpm 
Name        : jdk1.8.0_131                 Relocations: /usr/java 
Version     : 1.8.0_131                         Vendor: Oracle Corporation
Release     : fcs                           Build Date: 2017年03月15日 星期三 04时49分08秒
Install Date: (not installed)               Build Host: sca00bok.us.oracle.com
Group       : Development/Tools             Source RPM: jdk1.8.0_131-1.8.0_131-fcs.src.rpm
Size        : 285747407                        License: http://java.com/license
Signature   : (none)
Packager    : Java Software <jre-comments@java.sun.com>
URL         : URL_REF
Summary     : Java Platform Standard Edition Development Kit
Description :
The Java Platform Standard Edition Development Kit (JDK) includes both
the runtime environment (Java virtual machine, the Java platform classes
and supporting files) and development tools (compilers, debuggers,
tool libraries and other tools).

The JDK is a development environment for building applications, applets
and components that can be deployed with the Java Platform Standard
Edition Runtime Environment.
[root@localhost home]# rpm -qpl jdk-8u131-linux-i586.rpm | wc -l
1851
[root@localhost home]# rpm -qpc jdk-8u131-linux-i586.rpm 
/usr/java/jdk1.8.0_131/.java/.systemPrefs/.system.lock
/usr/java/jdk1.8.0_131/.java/.systemPrefs/.systemRootModFile
/usr/java/jdk1.8.0_131/.java/init.d/jexec
/usr/java/jdk1.8.0_131/jre/lib/charsets.pack
/usr/java/jdk1.8.0_131/jre/lib/deploy.pack
/usr/java/jdk1.8.0_131/jre/lib/ext/localedata.pack
/usr/java/jdk1.8.0_131/jre/lib/javaws.pack
/usr/java/jdk1.8.0_131/jre/lib/jsse.pack
/usr/java/jdk1.8.0_131/jre/lib/plugin.pack
/usr/java/jdk1.8.0_131/jre/lib/rt.pack
/usr/java/jdk1.8.0_131/lib/tools.pack
[root@localhost home]# rpm -qpd jdk-8u131-linux-i586.rpm | wc -l
105

rpm软件包的安装与卸载

-i:install 安装
-v:查看更详细的安装信息
-h:显示安装进度
-e:erase 卸载清除安装包

依赖关系

依赖关系
安装有依赖关系的多个软件时,被依赖的软件包需要先安装 --> 需要同时指定多个.rpm包文件进行安装
卸载有依赖关系的多个软件时,依赖其他程序的软件包需要先卸载 --> 同时指定多个软件吗进行卸载

yum可以自动解决依赖关系,但rpm安装需要我们自己去解决依赖关系
结合 "--nodeps"可以忽略依赖关系,但可能导致软件异常

常用辅助选项

--force:强制安装所指定的rpm软件包

--nodeps:安装、升级或卸载软件时,忽略依赖关系

--replacefiles:在安装过程中出现某个文件已经被安装在你的系统上的信息,或出现版本不合的信息,可以用这个参数直接覆盖文件

--replacekgs:重新安装某个已经安装过的软件。防止安装RPM文件时因为某软件已安装导致无法继续安装

--test:测试软件是否可以被安装到用户的Linux环境中

建议:尽量安装时直接使用 -ivh 就好,尽量不要使用--force暴力安装,否则可能会发生很多不可预期的问题。
————————————————
版权声明:本文为CSDN博主「xiaoxie_coding」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_57053326/article/details/122363510

rpm更新或升级

-i:安装一个新的rpm软件包
-U:升级某个rpm软件,若原本未装,则进行安装
需要自己提供高版本的软件包,不会自动去帮助到哪里下载
-F:更新某个rpm软件,若原本未装,则放弃安装
posted @ 2023-11-19 21:08  Bre-eZe  阅读(79)  评论(0)    收藏  举报