rpm -qip 查詢未安裝的包的信息 有問題
rpm -qi ?包名 ? 查詢已安裝的包的信息;
我已經安裝了httpd的四個包:
[root@localhost Packages]# rpm -qa|grep httpd
httpd-tools-2.2.15-15.el6.centos.1.i686
httpd-manual-2.2.15-15.el6.centos.1.noarch
httpd-devel-2.2.15-15.el6.centos.1.i686
httpd-2.2.15-15.el6.centos.1.i686
-----------------------------------------------------------------------------------分隔符------------------
我使用rpm -qi httpd-tools 查詢已安裝的包 httpd-tools-2.2.15-15.el6.centos.1.i686的信息
[root@localhost Packages]# rpm -qi httpd-tools
Name ? ? ? ?: httpd-tools ? ? ? ? ? ? ? ? ?Relocations: (not relocatable)
Version ? ? : 2.2.15 ? ? ? ? ? ? ? ? ? ? ? ? ? ?Vendor: CentOS
Release ? ? : 15.el6.centos.1 ? ? ? ? ? ? ? Build Date: Tue 14 Feb 2012 06:27:17 AM CST
Install Date: Wed 07 Oct 2015 07:14:59 PM CST ? ? ?Build Host: c6b18n2.bsys.dev.centos.org
Group ? ? ? : System Environment/Daemons ? ?Source RPM: httpd-2.2.15-15.el6.centos.1.src.rpm
Size ? ? ? ?: 131477 ? ? ? ? ? ? ? ? ? ? ? ? ? License: ASL 2.0
Signature ? : RSA/SHA1, Tue 14 Feb 2012 07:11:00 PM CST, Key ID 0946fca2c105b9de
Packager ? ?: CentOS BuildSystem <http://bugs.centos.org>
URL ? ? ? ? : http://httpd.apache.org/
Summary ? ? : Tools for use with the Apache HTTP Server
Description :
The httpd-tools package contains tools which can be used with
the Apache HTTP Server.
提示是已安裝的包。
----------------分隔符-----------------------------------------------------------------------------------------
既然httpd-tools-2.2.15-15.el6.centos.1.i686這個包已經是安裝了的包,那么我用命令
rpm -qip?httpd-tools-2.2.15-15.el6.centos.1.i686?查詢光盤Packages目錄下的這個包的信息,為什么顯示沒有安裝此包?
[root@localhost Packages]# rpm -qip httpd-tools-2.2.15-15.el6.centos.1.i686.rpm?
warning: httpd-tools-2.2.15-15.el6.centos.1.i686.rpm: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Name ? ? ? ?: httpd-tools ? ? ? ? ? ? ? ? ?Relocations: (not relocatable)
Version ? ? : 2.2.15 ? ? ? ? ? ? ? ? ? ? ? ? ? ?Vendor: CentOS
Release ? ? : 15.el6.centos.1 ? ? ? ? ? ? ? Build Date: Tue 14 Feb 2012 06:27:17 AM CST
Install Date: (not installed) ? ? ? ? ? ? ? Build Host: c6b18n2.bsys.dev.centos.org
Group ? ? ? : System Environment/Daemons ? ?Source RPM: httpd-2.2.15-15.el6.centos.1.src.rpm
Size ? ? ? ?: 131477 ? ? ? ? ? ? ? ? ? ? ? ? ? License: ASL 2.0
Signature ? : RSA/SHA1, Tue 14 Feb 2012 07:11:00 PM CST, Key ID 0946fca2c105b9de
Packager ? ?: CentOS BuildSystem <http://bugs.centos.org>
URL ? ? ? ? : http://httpd.apache.org/
Summary ? ? : Tools for use with the Apache HTTP Server
Description :
The httpd-tools package contains tools which can be used with
the Apache HTTP Server.
-----------------------------分隔符---------------------------------------------
難道命令只能嚴格的通過包名與包全名來識別系統有沒有安裝軟件包?
2017-06-21
總結?。。。。?!在Package目錄下,如果使用包全名,rpm -qi命令也會顯示未安裝,如果用包名,就會提示已安裝和rpm包信息。所以,在Package目錄下,使用rpm -qip 包全名可以查看原作者寫的軟件信息,即使包已經安裝。
2017-06-21
不要鉆牛角尖,就當rpm -qip是查詢Package中rpm包的原本的自帶信息,就是老師說的包作者事先寫好的信息,install date當然是是沒安裝。
2015-12-30
本人才疏學淺,嘗試回答你的問題,你的rpm -qip命令確實查到了信息,我仔細看了下結果區別在于:Install Date: (not installed) ,顯示沒有安裝。
首先,我覺得很正常, 從rpm -qip說起,rpm -qip命令可以用來查看網上的某個包的信息(比如:?rpm -qip http://kev.coolcavemen.com/static/repository/mandriva/2006.0/RPMS/amarok-1.4.1-4mdk.i586.rpm),它沒有必要把包下載下來再來比對一下?是否安裝,也不可能單純的直接比較名稱?,從設計的角度來說,rpm -qip只用于查看包的信息。
然后,一個包可能有很多個版本,名字大致相同卻不完全相同,這個很好理解,于是查看未安裝的包需要跟上全名,再加上可以訪問網絡地址,這就更需要包全名。我依稀記得,linux上一個包只能安裝一個版本,就算安裝低版本的包,也會把高版本的卸載了,這點不完全能確定,我平時用apt-get的時候,我記得是這樣的。每次包的安裝都會留下安裝記錄,并記錄下如何卸載,依賴有哪些,安裝信息等。所以本地包才能查到安裝信息。
總結,因為本地有了安裝過的包的信息,所以,不用加版本就可以查詢到
也就是,未安裝的要全名,安裝過的可以用包名。