rpm查询命令的结果有两个相同版本rpm包

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010039418/article/details/81231785

有时候你会发现系统上居然有两个一模一样的rpm包,

[root@localhost ~]# rpm -q zlib
zlib-1.2.3-7.el5
zlib-1.2.3-7.el5
[root@localhost ~]# 

还有这操作,这肯定是rpm的数据库文件异常了吧。

坐下坐下,这只是正常操作,是rpm查询命令搞的鬼。我们使用yum命令看下具体信息,

[root@localhost ~]# yum info zlib-1.2.3-7.el5
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Installed Packages
Name       : zlib
Arch       : i386
Version    : 1.2.3
Release    : 7.el5
Size       : 77 k
Repo       : installed
Summary    : The zlib compression and decompression library.
URL        : http://www.gzip.org/zlib/
License    : BSD
Description: Zlib is a general-purpose, patent-free, lossless data compression
           : library which is used by many different programs.

Name       : zlib
Arch       : x86_64
Version    : 1.2.3
Release    : 7.el5
Size       : 87 k
Repo       : installed
Summary    : The zlib compression and decompression library.
URL        : http://www.gzip.org/zlib/
License    : BSD
Description: Zlib is a general-purpose, patent-free, lossless data compression
           : library which is used by many different programs.

[root@localhost ~]# 

这下应该清楚了,是安装了两个不同架构的rpm包,一个是i386,另一个是x86_64

那有没有办法获取rpm包的完整名称呢? of course !

使用大杀器,rpm –qf,注意是两个-,命令全称是,

rpm --queryformat [QUERYFMT]

其中QUERYFMT是一系列rpm的查询标志,可以通过以下命令查询有哪些标志可以使用,

[root@localhost ~]# rpm --querytags
ARCH
ARCHIVESIZE
BASENAMES
BUGURL
BUILDARCHS
BUILDHOST
BUILDTIME
C
CHANGELOGNAME
CHANGELOGTEXT
CHANGELOGTIME
....

默认情况下,rpm -q 的格式为,

[root@localhost ~]# rpm -q --qf '%{name}-%{version}-%{release}\n' zlib
zlib-1.2.3-7.el5
zlib-1.2.3-7.el5
[root@localhost ~]# 

不带有架构信息,因此觉得有两个相同版本的包。所以我们可以在查询格式中定义架构信息,这样就能区分出两个包。

[root@localhost ~]# rpm -q --qf '%{name}-%{version}-%{release}.%{arch}\n' zlib
zlib-1.2.3-7.el5.x86_64
zlib-1.2.3-7.el5.i386
[root@localhost ~]# 

人生不止,踩坑不停。

猜你喜欢

转载自blog.csdn.net/u010039418/article/details/81231785
今日推荐