rpmの機能とは何ですか?rpmなしでそのテキストを取得する方法

rpmの機能とは何ですか?rpmなしでそのテキストを取得する方法

を実行すると、less package.rpmlessパッケージに関するさまざまなメタ情報が表示されます。何をすべきかわかりません。メタ情報を抽出するコードが組み込まれていますか?それとも、最初の部分がテキストファイルのように見えるようにrpmが設定されていますか?

headここではあまり役に立たないので前者だと思います。しかし到着する本物Q:このメタデータが私に表示されないようにするにはgrepどうすればよいですか?

答え1

lessマニュアルページを参照すると、less入力前処理機能があることがわかります。

echo $LESSOPENこの前処理装置の位置を確認し、//を使用してlessその内容を確認してください。vimcat

マイコンピュータでは、このプリプロセッサには/usr/bin/lesspipe.sh次のrpmコンテンツが含まれています。

*.rpm) rpm -qpivl --changelog -- "$1"; handle_exit_status $?

実際にファイルを開き、出力のページ付けを表示するless必要はありません。rpm

明らかにこの情報をgrepするには、rpmの出力を直接grepします。

grep "foo" < <(rpm -qpivl --changelog -- bar.rpm)

または一般的に(OrangeDogに感謝します)

grep "foo" < <(lesspipe.sh bar.rpm)

メモ: $LESSOPEN単に場所だけを保存するのではなく、lesspipe.shaで始まり|aで終わる%sので、直接呼び出すとエラーが発生します。

答え2

このメタデータを表示するのではなく、ナビゲートしたい場合はどうすればよいですか?

たとえば、「バージョン」を検索したい場合は非常に簡単です。

less your.rpm | grep "Version"

lessはコマンドを使用するため、lessを使用せずに次のコマンドをrpm使用することをお勧めします。rpm

rpm -qip /path/to/uninstalled/rpm
rpm -qi installed.rpm

関連情報