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

有时候你会发现系统上居然有两个一模一样的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 ~]# 

人生不止,踩坑不停。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值