1. 程式人生 > >軟體包查詢-rpm查詢常用命令

軟體包查詢-rpm查詢常用命令

軟體包查詢


〇、測試環境
[root@osker ~]# cat /etc/redhat-release
CentOS Linux release 7.7.1908 (Core)
[root@osker ~]# uname -r
5.4.2-1.el7.elrepo.x86_64

[root@osker ~]# rpm --version
RPM version 4.11.3


一、包查詢
有時候知道命令需要查詢命令對應的安裝包名(有時候命令名稱和包名不是同一個名字)
方法1、
先使用whereis命令,查詢出命令的路徑
[root@osker ~]# whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz
再使用rpm -qf查詢系統檔案屬於哪個軟體包(file)
[root@osker ~]# rpm -qf  /usr/bin/ls
coreutils-8.22-24.el7.x86_64
方法2、
[root@osker ~]# yum provides ls
Loaded plugins: fastestmirror
...
 * updates: mirror.newmediaexpress.com
coreutils-8.22-24.el7.x86_64 : A set of basic GNU tools commonly used in shell scripts
Repo        : base
Matched from:
Filename    : /usr/bin/ls


二、rpm -q 常用查詢命令
rpm:RPM Package Manager
rpm {-q|--query} [select-options] [query-options]

1、-q:查詢(query)
查詢軟體包是否安裝,命令格式如下:
rpm -q 軟體包名
例:
[root@osker ~]# rpm -q net-tools
net-tools-2.0-0.25.20131004git.el7.x86_64
[root@osker ~]# rpm -q ifconfig
package ifconfig is not installed
注意是接包名不是命令名

2、-qa:查詢所有安裝的包(all)
-a, --all:Query all installed packages.
rpm -qa
例:
[root@osker ~]# rpm -qa
libXdamage-1.1.4-4.1.el7.x86_64
dbus-python-1.1.1-9.el7.x86_64
setup-2.8.71-10.el7.noarch
libXpm-3.5.12-1.el7.x86_64
...
[root@osker ~]# rpm -qa |grep net-tools
net-tools-2.0-0.25.20131004git.el7.x86_64

3、-qi查詢軟體包的詳細資訊(information)
-i, --info:Display package information, including name, version, and description.
rpm -qi 包名
例:
[root@osker ~]# rpm -qi net-tools
Name        : net-tools
#包名
Version     : 2.0
#版本
Release     : 0.25.20131004git.el7
Architecture: x86_64
#架構
Install Date: Fri 22 Nov 2019 04:28:51 AM CST
#安裝時間
Group       : System Environment/Base
Size        : 938978
License     : GPLv2+
Signature   : RSA/SHA256, Fri 23 Aug 2019 05:36:04 AM CST, Key ID 24c6a8a7f4a80eb5
#簽名
Source RPM  : net-tools-2.0-0.25.20131004git.el7.src.rpm
#源RPM包名
Build Date  : Fri 09 Aug 2019 09:10:26 AM CST
Build Host  : x86-02.bsys.centos.org
Relocations : (not relocatable)
Packager    : CentOS BuildSystem <http://bugs.centos.org>
Vendor      : CentOS
URL         : http://sourceforge.net/projects/net-tools/
Summary     : Basic networking tools
Description :
The net-tools package contains basic networking tools,
including ifconfig, netstat, route, and others.
Most of them are obsolete. For replacement check iproute package.

4、-ql(list)查詢已經安裝的軟體包中的檔案列表和安裝的完整目錄
rpm -ql 包名
-l, --list:List files in package.
例:
[root@osker ~]# rpm -ql vim-enhanced
/etc/profile.d/vim.csh
/etc/profile.d/vim.sh
/usr/bin/rvim
/usr/bin/vim
/usr/bin/vimdiff
/usr/bin/vimtutor

5、-qc查詢已經安裝的軟體包中的配置檔案所在的位置
-c, --configfiles:List only configuration files.
rpm -qc 包名
例:
[root@osker ~]# rpm -qc mlocate
/etc/cron.daily/mlocate
/etc/updatedb.conf

6、-qd查詢已經安裝的軟體包中的幫助文件
-d, --docfiles:List only documentation files.
rpm -qd 包名
例:
[root@osker ~]# rpm -qd  mlocate
/usr/share/doc/mlocate-0.26/AUTHORS
/usr/share/doc/mlocate-0.26/COPYING
/usr/share/doc/mlocate-0.26/NEWS
/usr/share/doc/mlocate-0.26/README
/usr/share/man/man1/locate.1.gz
/usr/share/man/man5/mlocate.db.5.gz
/usr/share/man/man5/updatedb.conf.5.gz
/usr/share/man/man8/updatedb.8.gz

7、-qf(file)查詢指定檔案由哪個軟體包生成
-f, --file FILE:Query package owning FILE.
例:
[root@osker ~]# whereis ifconfig
ifconfig: /usr/sbin/ifconfig /usr/share/man/man8/ifconfig.8.gz
[root@osker ~]# rpm -qf  /usr/share/man/man8/ifconfig.8.gz
net-tools-2.0-0.25.20131004git.el7.x86_64

8、搜尋
[root@osker ~]# yum provides locate
#查詢locate命令所屬包名
Loaded plugins: fastestmirror
Determining fastest mirrors
...     
mlocate-0.26-8.el7.x86_64 : An utility for finding files by name
Repo        : base
Matched from:
Filename    : /usr/bin/locate
#安裝mlocate
[root@osker ~]# yum install -y mlocate
Loaded plugins: fastestmirror
...
Installed:
  mlocate.x86_64 0:0.26-8.el7
Complete!
[root@osker ~]# touch qiu
[root@osker ~]# mkdir qiu1
#建立測試檔案和目錄
[root@osker ~]# ll
total 4
-rw-r--r-- 1 root root  0 Jan  2 09:41 osker
-rw-r--r-- 1 root root  0 Jan  2 09:52 qiu
drwxr-xr-x 2 root root  6 Jan  2 09:52 qiu1
-rw-r--r-- 1 root root 17 Dec 31 16:43 sort.txt
[root@osker ~]# updatedb
#更新搜尋資料庫
[root@osker ~]# locate qiu
/root/qiu
/root/qiu1


rpm幫助
[root@osker ~]# man rpm