特定のバージョン番号を持つすべてのインストール済みパッケージをリストするにはどうすればよいですか?


27

システム上の特定のバージョン番号とともに、インストールされているすべてのパッケージをリストしたいと思います。私はチェックアウトしましたdpkg --get-selectionsインストールされているすべてのパッケージをリストする方法)、必要なものが表示されません。例えば:

$ dpkg --get-selections apache2
apache2                                         install

apache2がインストールされていますが、バージョンはインストールされていません。最近、apt-get upgradeapache2.2.22-1 バージョンインストールする必要がありました(http://packages.ubuntu.com/precise-updates/apache2.2-common)が、どうすればそれを表示できますか?

ありがとう!

回答:


35

dpkg -l代わりに使用してください。

例:

dpkg -l | grep '^ii' | grep skype

これを出力します:

alaa @ aa-lu:〜$ dpkg -l | grep '^ ii' | grep skype
ii skype 4.2.0.11-0ubuntu0.12.04.2 Skype VOIP用i386クライアント...

名前とバージョンのみを抽出する場合は、次の操作を実行できます。

dpkg -l | grep '^ii' | grep skype | awk '{print $2 "\t" $3}'

次のように、上記の出力の2番目と3番目の列のみを印刷します。

alaa @ aa-lu:〜$ dpkg -l | grep '^ ii' | grep skype | awk '{print $ 2 "\ t" $ 3}'
skype 4.2.0.11-0ubuntu0.12.04.2

もちろん、Skypeだけでなく、インストールされているすべてのパッケージとそのバージョンをリストたい場合はgrep skype、次のようなコマンドを作成するために一部を削除するだけです。

dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'

dpkg -lがバージョン番号が21文字よりも長い場合、バージョン番号が切り捨てられ、すべてのパッケージバージョンが22文字のようになっていることに気付きました。:(
ThorSummoner

12

つかいます

dpkg-query --show apache2

パッケージのバージョン番号を取得するapache2と、

dpkg-query --show 

インストールされているすべてのパッケージのバージョン番号を取得する


1
あなたのソリューションは、私よりも20%以上多くのパッケージを私に与えましたdpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'。違いは何ですか?
トーマスジェンセン

3
@Thomas Jensen:これを見つけてくれてありがとう。dpkg-query --show実際にはインストールされているパッケージは表示されませんが、インストールされていないパッケージは表示されません。つまり、たとえば、ハーフインストールされたパッケージや、構成ファイルが残っているパッケージも表示されます。
フロリアンディーシュ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.