對RPM軟體包的查詢操作

roc_guo發表於2022-01-05
1、查詢RPM軟體包是否安裝

格式如下:

[root@localhost ~]# rpm -q 包名
選項:
  -q:查詢(query)

示例:

# 如果能看到包名,說明軟體已安裝
[root@localhost ~]# rpm -q httpd 
httpd-2.2.15-53.e16.centos.x86_64
# 如果沒有安裝會提示你
[root@localhost ~]# rpm -q gdhjgas
package gdhjgas is not installed
2、查詢系統中所有已安裝的RPM軟體包

可以查詢 中所有已經安裝的軟體包, 格式如下:

[root@localhost ~]# rpm -qa
選項:
  -a:所有(all)
  (這個命令很少用,因為會顯示很多內容,不方便檢視)
可以統計透過RPM方式安裝的軟體包個數
[root@localhost ~]# rpm -qa | wc -l
708

當然,可以用管道符來檢視所需的內容,比如:

[root@localhost ~]# rpm -qa | grep httpd

你會發現,使用rpm -q 包名只能檢視這個包是否安裝,但是使用rpm -qa | grep 包名
會把所有包含httpd(包名)的包都列出來。

3、查詢RPM軟體包的詳細資訊

可以查詢已經安裝的某個軟體包的詳細資訊(瞭解即可)。

命令格式如下:

[root@localhost ~]# rpm -qi 包名
選項:
  -i:查詢軟體資訊(information)
也可以查詢還沒有安裝的軟體包的詳細資訊。因為這些資訊是在RPM軟體包裡的,作者事先寫好的,並不是在軟體安裝之後才能查詢軟體包資訊。注意要使用包全名。

命令格式如下:

[root@localhost ~]# rpm -qip 包全名
選項:
  -p:查詢沒有安裝的軟體包(package)
4、查詢RPM軟體包中的檔案列表
可以查詢已經安裝的軟體包中的檔案列表和安裝的完整目錄。(也就是軟體的安裝位置,非常常用。)

命令格式如下:

[root@localhost ~]# rpm -ql 包名
選項:
  -l:列出軟體包中所有的檔案列表和軟體所安裝的目錄(list)
那麼,可以查詢還沒有安裝的軟體包中的檔案列表和打算安裝的位置嗎?

答案是可以(原因同第3點)。

命令格式如下:

[root@localhost ~]# rpm -qlp 包全名
選項:
  -p:查詢沒有安裝的軟體包資訊(package)
5、查詢系統檔案屬於哪個RPM包

既然可以知道每個RPM包中的檔案的安裝位置,那麼可以查詢系統檔案屬於哪個RPM包嗎?

當然可以,不過需要注意的是,手工建立的檔案是不能查詢的,因為這些檔案不是透過RPM包安裝的,當然不能反向查詢它屬於哪個RPM包。

命令格式如下:

[root@localhost ~]# rpm -qf 系統檔名(也就是軟體中帶有的,不能是自己建立的檔案。)
選項:
  -f:查詢系統檔案屬於哪個軟體包(file)
示例:
# 自己建立的檔案演示
[root@localhost ~]# rpm -qf abc
file/root/abc is not owned by any package(該檔案不屬於任何包)
# 透過rpm安裝包的方式,查詢安裝的軟體產生的檔案
[root@localhost ~]# rpm -qf /etc/httpd/conf/httpd.conf 
httpd-2.2.15-53.e16.centos.x86_64
6、查詢RPM軟體包所依賴的軟體包

查詢系統中和已經安裝的軟體包有依賴關係的軟體包,命令格式如下:

[root@localhost ~ # rpm -qR 包名
選項:
  -R:查詢軟體包的依賴性(requires)

上邊命令只會把所有依賴的軟體包列出來,但是結果中沒有辦法區分,這些依賴的軟體包在系統中是否已經安裝。(不常用,瞭解即可。)

如何可以查詢沒有安裝的軟體包的依賴性?
加-p選項即可。
例如,檢視一下還沒有安裝的bind軟體包的依賴包,可以執行如下命令:

[root@localhost ~]# rpm -qRp /mnt/cdrom/Packages/bind-9.8.2-0.10.rcl.e16.i686.rpm


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69901823/viewspace-2850694/,如需轉載,請註明出處,否則將追究法律責任。

相關文章