rpm -qip 查询未安装的包的信息 有问题

来源:3-4 Linux中rpm命令管理之RPM包查询

xinhao

2015-10-07 16:54

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.

-----------------------------分隔符---------------------------------------------

难道命令只能严格的通过包名与包全名来识别系统有没有安装软件包?


写回答 关注

3回答

  • 慕粉1720382552
    2017-06-21 19:40:31

    总结!!!!!!在Package目录下,如果使用包全名,rpm -qi命令也会显示未安装,如果用包名,就会提示已安装和rpm包信息。所以,在Package目录下,使用rpm -qip 包全名可以查看原作者写的软件信息,即使包已经安装。

  • 慕粉1720382552
    2017-06-21 19:13:43

    不要钻牛角尖,就当rpm -qip是查询Package中rpm包的原本的自带信息,就是老师说的包作者事先写好的信息,install date当然是是没安装。


    慕粉1720...

    rpm -ql和rpm -qlp都是可以查询已安装包的安装文件信息的,但rpm -q1p是需要用包全名的,原始的安装文件要在,才能看到。其实就是查看原作者准备的路径信息。

    2017-06-21 19:23:36

    共 1 条回复 >

  • Blackmourner
    2015-12-30 09:19:53

    本人才疏学浅,尝试回答你的问题,你的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的时候,我记得是这样的。每次包的安装都会留下安装记录,并记录下如何卸载,依赖有哪些,安装信息等。所以本地包才能查到安装信息。

    总结,因为本地有了安装过的包的信息,所以,不用加版本就可以查询到

    也就是,未安装的要全名,安装过的可以用包名。

Linux软件安装管理

通过本课程了解Linux中的软件如何进行安装、卸载、升级等管理

80150 学习 · 275 问题

查看课程

相似问题