『學了就忘』Linux軟件包管理 — 42、對RPM軟件包的查詢操作


之前我們說的RPM軟件包的安裝和卸載,都可以使用yum命令來代替,但是RPM軟件包的查詢,yum命令是代替不了的。

注意:

  • 這不是說yum沒有查詢命令,只是yum查詢命令和RPM軟件包的查詢命令,所查詢的東西是不一樣的。
  • 執行yum命令需要聯網,流程是去遠程服務器去查找,下載,安裝軟件。本機相當於一個客戶端,遠程的官方服務器相當於服務端。
  • RPM軟件包的查詢,是查詢客戶端上的信息(也就是本機上的信息,如是否安裝軟件,軟件安裝到什么位置等)。
  • yum查詢的是遠程的官方的服務器上的信息,比如服務器上有哪些包,包的版本信息等。

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軟件包

可以查詢Linux系統中所有已經安裝的軟件包,命令格式如下:

[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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM