web-dev-qa-db-ja.com

特定のパッケージがubuntuにインストールされているかどうかを知る方法は?

数か月前にUbuntu 14.04にJDKパッケージをインストールしましたが、どのバージョンであるかを確認する方法がわかりません。

それでは、パッケージがUbuntuにインストールされているかどうか、およびどのバージョンがインストールされているかを確認する方法を教えてください。

19
Boyka

TL; DR:出力がコンパクトな単純なコマンド(| grepなし)の場合、次を使用できます。

  • apt list package、これは通常あなたが望むものです(apt-cache policy packageと比較)、または
  • dpkg-query -W packagedpkg -l package </ em> </ code> の混乱の少ないバージョンとして。

apt コマンド(apt list packageの場合)はUbuntu 14.04以降で使用できます。

apt listは、パッケージがインストールされているかどうかを示します。

apt list packageは、インストールされるパッケージのバージョン、およびパッケージを提供するリポジトリコンポーネントの名前とバージョンを表示します。パッケージをインストールすると、[installed]が行の最後に顕著に表示されます。

ek@Io:~$ apt list firefox
Listing... Done
firefox/xenial-updates,xenial-security,now 51.0.1+build2-0ubuntu0.16.04.1 AMD64 [installed]
N: There is 1 additional version. Please use the '-a' switch to see it

末尾の[installed]に加えて、リポジトリコンポーネントのリストのnowは、パッケージが現在インストールされていることを示します。 is n'tがインストールされているパッケージの場合、apt listの出力は次のようになります。

ek@Io:~$ apt list dolphin
Listing... Done
dolphin/xenial 4:15.12.3-0ubuntu1 AMD64

時々[installed,automatic]が表示されます。これは、パッケージが他のパッケージの依存関係としてインストールされたことを意味します。手動でインストールするのではなく自動的にインストールされたため、それに依存するすべてのパッケージが削除された後に削除できます(これはapt autoremoveコマンドの機能です)。

ek@Io:~$ apt list zeitgeist-core
Listing... Done
zeitgeist-core/xenial,now 0.9.16-0ubuntu4 AMD64 [installed,automatic]

apt list --installedを使用してonlyインストール済みパッケージを表示できます。

パッケージがインストールされていない場合でもリストを表示する利点の1つは、そこにあることを知っていることですis指定した名前のパッケージです。そうしないと、誤ってつづりを間違えた場合、あなたがmeantパッケージがインストールされていないと思うかもしれません。

ek@Io:~$ apt list firefoz
Listing... Done

しかし、パッケージがない場合にnothingを表示したい場合は、apt list --installed packageを使用してください。

ek@Io:~$ apt list --installed firefox dolphin
Listing... Done
firefox/xenial-updates,xenial-security,now 51.0.1+build2-0ubuntu0.16.04.1 AMD64 [installed]
N: There is 1 additional version. Please use the '-a' switch to see it

Globbingは、名前がわからない、または入力したくないパッケージをリストするのに役立ちます。

これまで見てきたように、複数のパッケージ名をapt listに渡すことができます。他にできることは a glob を渡すことです。ここで*はゼロ個以上の文字を表し、?は1文字を表します。留意すべき点がいくつかあります。

  • あなたのシェル また グロブをファイル名に展開します 、しかしnotここで何をしたいのか 常に引用する)''または""で、または\で)それらをapt listに渡すとき。
  • Globと 正規表現 は両方とも文字クラスをサポートしますが(たとえば、[csz]shcshsshzshに一致します)、それらは同じではなく、*?異なることを意味します 正規表現よりも。 apt-cache policy packageなど、パッケージに関する情報を取得するために使用される他のいくつかのコマンドは、グロブではなく正規表現を使用するため、これは重要です。どちらの機能でもrelyingの前に、コマンドがグロブまたは正規表現を使用しているかどうかを確認する必要があります。
  • 実際にパッケージを追加および削除する場合、する必要はありませんグロブを正規表現と混同します。apt list 'wine*'は、名前がwineで始まるすべてのパッケージをリストしますが、apt remove 'wine*'はすべて削除します名前にwinが含まれるパッケージ(eがなくても)

たとえば、興味のあるパッケージの名前のどこかにsoapがあり、cilで終わることを知っていると仮定しますが、それは私が覚えているすべてです:

ek@Io:~$ apt list '*soap*cil'
Listing... Done
libmono-system-runtime-serialization-formatters-soap4.0-cil/xenial,xenial,now 4.2.1.102+dfsg2-7ubuntu4 all [installed,automatic]

グロビングは、do興味のあるパッケージのフルネームを知っているが、タイプしたくない場合にも便利です。または、グロブに一致する複数のパッケージに興味がある場合:

ek@Io:~$ apt list 'firefox-locale-*'
Listing... Done
firefox-locale-af/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-an/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ar/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-as/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ast/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-az/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-be/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-bg/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-bn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-br/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-bs/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ca/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-cak/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-cs/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-csb/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-cy/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-da/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-de/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-el/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-en/xenial-updates,xenial-security,now 51.0.1+build2-0ubuntu0.16.04.1 AMD64 [installed]
firefox-locale-eo/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-es/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-et/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-eu/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-fa/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-fi/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-fr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-fy/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ga/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-Gd/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-gl/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-gn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-gu/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-he/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hi/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hsb/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hu/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hy/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-id/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-is/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-it/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ja/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ka/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-kab/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-kk/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-km/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-kn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ko/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ku/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-lg/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-lt/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-lv/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-mai/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-mk/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ml/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-mn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-mr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ms/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-nb/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-nl/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-nn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-nso/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-oc/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-or/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-pa/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-pl/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-pt/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ro/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ru/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-si/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sk/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sl/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sq/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sv/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sw/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ta/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-te/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-th/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-tr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-uk/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-uz/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-vi/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-xh/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-zh-hans/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-zh-hant/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-zu/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64

それはたくさんのパッケージです。 (all使用可能なパッケージをリストするapt list '*'を実行した場合ほどではありませんが!)幸いなことに、globは--installedでも動作します。

ek@Io:~$ apt list --installed 'firefox-locale-*'
Listing... Done
firefox-locale-en/xenial-updates,xenial-security,now 51.0.1+build2-0ubuntu0.16.04.1 AMD64 [installed]
N: There is 1 additional version. Please use the '-a' switch to see it

apt list vs. dpkg-query -W

使用できる別のコマンドはdpkg-query -W packageです。これは dpkg -l に似ていますが、パッケージ名とインストールされているバージョン(存在する場合)のみが出力されるため、出力はより合理的で読みやすくなります。

dpkg-query -Wは、dpkgがすべてのパッケージを一覧表示します。これには、インストールされているパッケージと、インストールされていないが別のパッケージによって参照されているパッケージが含まれます。 インストールされているバージョン番号/文字列が名前の右側に印刷されているため、実際にインストールされているパッケージを確認できます。たとえば、私の16.04システムでは:

ek@Io:~$ dpkg-query -W wine-\*
wine-AMD64
wine-gecko
wine-gecko2.21:AMD64    2.21-0ubuntu1
wine-gecko2.21:i386     2.21-0ubuntu1
wine-i386
wine-mono
wine-mono0.0.8  0.0.8-0ubuntu1

したがって、リストされているパッケージのうち、wine-gecko2.21:AMD64wine-gecko2.21:i386(つまり、wine-gecko2.21AMD64の両方のアーキテクチャーのi386)とwine-mono0.0.8が現在インストールされています。

dpkg-query -Wapt listは、現在設定されているソフトウェアソースによって提供されているかどうか、および他のパッケージから参照されているかどうか、インストールされているパッケージについて常に認識します。しかしながら:

  • apt listは、現在構成されているソフトウェアソースから利用可能なパッケージについても知っていますが、他のパッケージによって参照される利用できないパッケージについては知りません。
  • dpkg-query -Wdpkg -lなど)は、実際に利用可能なパッケージを直接反映していませんが、インストールされているパッケージによって参照されるパッケージについては認識しています。

同じマシンで:

ek@Io:~$ apt list wine-\*
Listing... Done
wine-development/xenial,xenial 1.9.6-1 all
wine-gecko2.21/xenial,now 2.21-0ubuntu1 AMD64 [installed,automatic]
wine-mono0.0.8/xenial,xenial,now 0.0.8-0ubuntu1 all [installed,automatic]

dpkg -lと同様に、持っていないパッケージの名前でdpkg-query -Wを実行すると(たとえば、chocolate-Doomがインストールされていません)、出力は、パッケージの名前でそれを実行したときと同じになります。 tはまったく存在しません(たとえば、firefozなどのスペルミスが原因です):

ek@Io:~$ dpkg-query -W chocolate-Doom firefoz
dpkg-query: no packages found matching chocolate-Doom
dpkg-query: no packages found matching firefoz

対照的に、apt listは、chocolate-Doomのみが存在することを明示的に示しています(ただし、インストールされていません)。

ek@Io:~$ apt list chocolate-Doom firefoz
Listing... Done
chocolate-Doom/xenial 2.2.1-2.1 AMD64
22
Eliah Kagan

ターミナルで、dpkg -l | grep <name or pattern>を実行します。例えば、

dpkg -l | grep firefox
ii  firefox       51.0.1+build2-0ubuntu0.14.04.2                      AMD64 

iiはインストールされていることを意味します。明らかに、出力がない場合、パッケージはインストールされません。

9
mikewhatever

パッケージ名がわかっている場合は、apt-cacheポリシーを使用します。

$ apt-cache policy firefox | grep 'Installed:'                                                                           
  Installed: 51.0.1+build2-0ubuntu0.16.04.1
$ apt-cache policy golang | grep 'Installed:'                                                                            
  Installed: (none)

そうでない場合は、dpkg --get-selections | grep 'jdk'を使用します

$ dpkg --get-selections | grep 'jdk'
jdk1.8.0-111                    deinstall
openjdk-7-jre-headless:AMD64            deinstall
openjdk-8-jdk:AMD64             install
openjdk-8-jdk-headless:AMD64            install
openjdk-8-jre:AMD64             install
openjdk-8-jre-headless:AMD64            install
openjdk-9-jre-headless:AMD64            deinstall
8

Debianのパッケージマネージャーであるdpkgコマンドを使用します。

>dpkg -s /package name/  

file/var/lib/dpkg/availableを使用して、利用可能なすべてのパッケージ名を見つけます。

または、次のコマンドを使用できます(/ var/lib/dpkg/statusにあるすべてのパッケージをリストします):

>dpkg-query -l  

wild cardsを使用してパッケージ名を一致させることもできます。

>dpkg-query -l 'libc6*'
4
Boyka