Linux でパッケージがインストールされているかどうかを確認する方法

LinuxLinuxBeginner
今すぐ練習

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

この実験では、さまざまなコマンドラインツールを使用して、特定のソフトウェアパッケージが Linux システムにインストールされているかどうかを確認する方法を学びます。apt list --installed コマンドを使ってインストールされているパッケージの包括的なリストを取得し、grep を使ってこのリストをフィルタリングする方法を探ります。

さらに、dpkg -l および apt policy コマンドを使用して、パッケージのインストールを検証し、インストールされているパッケージに関する詳細情報を取得する方法を学びます。これにより、Debian ベースの Linux ディストリビューションでのソフトウェア管理に必要なスキルを身につけることができます。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/PackagesandSoftwaresGroup(["Packages and Softwares"]) linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/PackagesandSoftwaresGroup -.-> linux/apt("Package Handling") subgraph Lab Skills linux/grep -.-> lab-558678{{"Linux でパッケージがインストールされているかどうかを確認する方法"}} linux/apt -.-> lab-558678{{"Linux でパッケージがインストールされているかどうかを確認する方法"}} end

apt list --installed でパッケージの状態を確認する

このステップでは、apt list --installed コマンドを使用して、システムにインストールされているソフトウェアパッケージを確認する方法を学びます。

Linux システム、特にこの実験で使用している Ubuntu のような Debian ベースのシステムでは、パッケージマネージャを使用してソフトウェアを管理します。apt はこの目的に役立つ強力なコマンドラインツールです。

apt list コマンドは、特定の条件に基づいてパッケージをリストするために使用されます。--installed オプションを追加すると、リストがフィルタリングされ、現在システムにインストールされているパッケージのみが表示されます。

ターミナルが開いていない場合は、開いてください。デスクトップの左側にある Xfce Terminal アイコンをクリックすると開きます。

以下のコマンドを入力し、Enter キーを押してください。

apt list --installed

長いパッケージのリストが表示されます。このリストには、パッケージ名、バージョン、およびアーキテクチャが含まれています。

Listing...
accountsservice/jammy-updates,now 0.6.55-0ubuntu12~22.04.5 amd64 [installed]
acl/jammy,now 2.3.1-1 amd64 [installed]
adduser/jammy,jammy,now 3.118ubuntu8 all [installed]
...
zlib1g/jammy-updates,now 1:1.2.11.dfsg-2ubuntu1.6 amd64 [installed]
zsh/jammy-updates,now 5.8.1-1ubuntu1.4 amd64 [installed]

このコマンドは、システムにインストールされているソフトウェアの包括的な概要を把握するのに便利です。リストが非常に長い場合があるため、出力の先頭を見るには上にスクロールする必要があるかもしれません。

出力を管理しやすくするために、apt list --installed をパイプ (|) を使用して他のコマンドと組み合わせることができます。たとえば、前の実験でインストールした htop のような特定のパッケージを検索するには、grep を使用できます。

apt list --installed | grep htop

このコマンドは、apt list --installed の出力を取得し、それを grep コマンドの入力として「パイプ」します。grep コマンドは、「htop」を含む行を検索します。

以下のような出力が表示され、htop がインストールされていることが確認できます。

htop/jammy,now 3.0.5-1build2 amd64 [installed]

apt list --installedgrep を組み合わせることで、特定のパッケージがシステムに存在するかどうかをすばやく確認できます。

Continue をクリックして次のステップに進んでください。

dpkg -l でパッケージのインストールを検証する

このステップでは、dpkg コマンドを使用してパッケージのインストール状態を検証します。apt はパッケージの管理(インストール、削除、更新)に使用する高レベルのツールですが、dpkg.deb パッケージファイルの実際のインストールと削除を処理する基盤となるツールです。

dpkg -l コマンドは、apt list --installed と同様にパッケージをリストしますが、少し異なる情報を提供し、より詳細な状態チェックによく使用されます。

ターミナルを開きます。以下のコマンドを入力し、Enter キーを押してください。

dpkg -l

再び、長いパッケージのリストが表示されます。出力形式は apt list --installed と少し異なります。

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/Trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||| Name                                Version                     Architecture Description
+++-===================================-===========================-============-===============================================================================
ii  accountsservice                     0.6.55-0ubuntu12~22.04.5    amd64        query and manipulate user account information
ii  acl                                 2.3.1-1                     amd64        Access control list utilities
ii  adduser                             3.118ubuntu8                all          add and remove users and groups
...
ii  zlib1g:amd64                        1:1.2.11.dfsg-2ubuntu1.6    amd64        compression library - runtime
ii  zsh                                 5.8.1-1ubuntu1.4            amd64        shell with lots of features

最初の数列を分解してみましょう。

  • Desired: ユーザーがパッケージに対して行いたい操作(例:インストールは i、削除は r)。
  • Status: パッケージの現在の状態(例:インストール済みは i、設定ファイルのみは c、完全削除は p)。
  • Err?: パッケージにエラーがあるかどうかを示します。

ほとんどの行の先頭にある ii は、「Install Ok, Installed」を意味します。これはパッケージが正しくインストールされていることを示しています。

apt list と同様に、grep を使用して特定のパッケージを検索することができます。再び htop を確認してみましょう。

dpkg -l | grep htop

以下のような行が表示され、htop の状態が確認できます。

ii  htop                                3.0.5-1build2               amd64        interactive processes viewer

htop の行の先頭にある ii は、それが正しくインストールされていることを確認します。

apt list --installed は単純なリストを取得するのには速いことが多いですが、dpkg -l はインストールの問題をトラブルシューティングするのに役立つ、より詳細な状態フラグを提供します。

Continue をクリックして次に進んでください。

apt policy を使ってパッケージの詳細を調べる

このステップでは、apt policy コマンドを使って、パッケージの詳細情報(インストールされているバージョンや、異なるリポジトリから利用可能なバージョンなど)を取得します。このコマンドは、パッケージのソースや、アップグレードまたは再インストールした場合にインストールされるバージョンを理解するのに特に役立ちます。

ターミナルを開きます。apt policy を使って htop パッケージを調べてみましょう。以下のコマンドを入力し、Enter キーを押してください。

apt policy htop

以下のような出力が表示されます。

htop:
  Installed: 3.0.5-1build2
  Candidate: 3.0.5-1build2
  Version table:
 *** 3.0.5-1build2 500
        500 http://archive.ubuntu.com/ubuntu jammy/universe amd64 Packages
        100 /var/lib/dpkg/status

出力を分解してみましょう。

  • Installed: これは、現在システムにインストールされている htop のバージョンを示しています。
  • Candidate: これは、sudo apt install htop または sudo apt upgrade htop を実行した場合にインストールされるバージョンを示しています。この場合、インストールされているバージョンが候補バージョンでもあります。
  • Version table: これは、設定されたソフトウェアリポジトリから利用可能なパッケージのバージョンをリストしています。
    • *** で始まる行は、インストールされているバージョンとその優先度を示しています。
    • 500 で始まる行は、Ubuntu の jammy/universe リポジトリから利用可能なバージョンとその優先度(500)を示しています。
    • 100 で始まる行は、dpkg のステータスファイルからのインストール済みバージョンを指しています。

(500 や 100 のような)数字は、パッケージソースの優先度を表しています。インストールまたはアップグレードする際には、優先度の高いソースが優先されます。

apt policy は、パッケージの問題をデバッグしたり、特定のパッケージバージョンがインストールされた理由を理解したり、設定されたソースから利用可能なバージョンを確認したりするための強力なコマンドです。

パッケージ名を指定せずに apt policy を実行すると、すべてのパッケージのポリシーを確認できます。これには、設定されたリポジトリとその優先度に関する情報が含まれます。ただし、その出力は非常に長くなります。

これで、インストールされたパッケージの状態と詳細を確認する 3 つの異なる方法(apt list --installeddpkg -lapt policy)を学びました。これらのコマンドは、Debian ベースの Linux システムでソフトウェアを管理するための重要なツールです。

Continue をクリックして、この実験を完了してください。

まとめ

この実験では、3 つの異なるコマンドラインツールを使用して、Linux システムにパッケージがインストールされているかどうかを確認する方法を学びました。まず、apt list --installed を使用して、インストールされているすべてのパッケージの包括的なリストを取得し、grep を使用してこの出力をフィルタリングして特定のパッケージを見つける方法を学びました。

次に、Debian パッケージを管理するための別のコマンドラインツールである dpkg -l を調べ、パッケージのインストール状態を検証し、その詳細を表示しました。最後に、apt policy を使用して、パッケージのインストール詳細(バージョンやソースなど)を調べ、システム上でパッケージがどのように管理されているかをより深く理解しました。