古いパッケージの名前を取得する方法は?

古いパッケージの名前を取得する方法は?

私はRHELを持っていて、サーバーの1つに同じRPMパッケージの2つの異なるバージョンをインストールしました。

[root ~]# rpm -qa | grep my-package-name
my-package-name-6.6.2-129.x86_64
my-package-name-7.0.2-1.x86_64

既存のパッケージ名だけがそのまま受け取れるかどうか疑問に思います。基本的に私は次のことを達成したいと思います:

[root ~]# rpm -qa | grep my-package-name | get-the-oldest-package

どうすればいいですか?

ベストアンサー1

同じパッケージの2つのバージョンをどのようにインストールするのかわかりませんが、これで作業が完了します。

rpm -q --queryformat "%{VERSION} %{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" my-package-name | \
  sort -V | \
  awk 'NR==1 { print $2 }'

最初の行はRPMデータベースにmy-package-nameを照会し、RPMに特定の形式(VERSIONの後にデフォルトの「rpm -qa」フィールド)で結果を提供するように要求します。バージョン番号を並べ替えるためにパイプされ、最初の行だけが印刷されるようにパイプされ、追加のsort -VVERSIONawkフィールドが削除され、デフォルトのrpm -qa出力が生成されます。

-Vこれにより、ソートフラグを使用してRHELシステムで実行していると仮定することが安全になります。

おすすめ記事