rpmコマンドでアーキテクチャ名を表示する
概要
サーバーにインストールされているパッケージを比較する際にハマったのでメモ。
結論: --qfオプションを付けて書式を設定してあげる
rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n'
以下詳細
#rpm -qa でパッケージ一覧を取得し行数を取得します #970パッケージインストールされてます [root@centos53 ~]# rpm -qa | wc -l 970 #どんなパッケージがあるかサラッと見てみます #GConf2-2.14.0-9.el5 や ImageMagick-6.2.8.0-15.el5_8 重複しているように見えます [root@centos53 ~]# rpm -qa | sort | head Cluster_Administration-ja-JP-5.8-1.el5.centos Deployment_Guide-en-US-5.8-1.el5.centos Deployment_Guide-ja-JP-5.8-1.el5.centos GConf2-2.14.0-9.el5 GConf2-2.14.0-9.el5 Global_File_System-ja-JP-5.8-1.el5.centos ImageMagick-6.2.8.0-15.el5_8 ImageMagick-6.2.8.0-15.el5_8 MAKEDEV-3.23-1.2 #重複をカウントすると175行も出てきてしまいした…… [root@centos53 ~]# rpm -qa | sort | uniq -d | wc -l 175 #--qf(queryformat) オプションを使用し、フォーマット書式を指定します #%{arch}がアーキテクチャー(i368とかx86_64) [root@centos53 ~]# rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' | grep "GConf2-2.14.0-9.el5" GConf2-2.14.0-9.el5.i386.rpm GConf2-2.14.0-9.el5.x86_64.rpm #重複がない事を確認します [root@centos53 ~]# rpm -qa --qf '%{name}-%{version}-%{release}.%{arch}.rpm\n' \ | sort | uniq -d | wc -l 0
rpm -qa だけですと、アーキテクチャが表示されないため同じパッケージが複数存在するように見えてしまうので注意が必要です。