TIPS: zypper でローカルにインストールされたパッケージ一覧を表示する
2020-12-08 コマンドの引数にコメントをいただき、一部修正しました。
openSUSE でインストール済みのパッケージ一覧を表示するときには、 rpm -qa コマンドを使っていました。しかし、Proxmox VE で使うコンテナイメージには rpm コマンドが含まれていませんでした。もちろんzypper コマンドで rpmコマンドを入れれば良いのですが、zypper コマンドだけで出来る方法がないか考えてみました。結果、
zypper –no-refresh se -i -t package
で代用することが出来ることが分かりました。結果はこんな感じになります。リモートリポジトリの検索を全部やめてしまえばローカルだけになる、と言う仕掛けです。
S | Name | Summary | Type
—+———————————–+————————————————————————–+——–
i+ | aaa_base | openSUSE Base Package | package
i+ | apache2 | The Apache Web Server | package
i+ | apache2-example-pages | Example Pages for the Apache 2 Web Server | package
i | apache2-prefork | Apache 2 “prefork” MPM (Multi-Processing Module) | package
i | apache2-utils | Apache 2 utilities | package
i+ | apparmor-abstractions | AppArmor abstractions and directory structure | package
i+ | apparmor-parser | AppArmor userlevel parser utility | package
i | augeas | An utility for changing configuration files | package
i | augeas-lenses | Official set of lenses for use by libaugeas0 | package
i | bash | The GNU Bourne-Again Shell | package
se のオプションに -i も必要ですね
–no-remote より –no-refresh のほうが、どのリポジトリから入れたかがわかって良いかもです。
やってみました。
zypper –no-remote se と zypper –no-remote se -i では結果変わらずでした。
–no-refresh は、入っていないパッケージも出てきますので、本来期待した結果と異なります。入っているものだけを一覧表示するには –no-remote の方がよいと思います。