はじめに
この実験では、さまざまなコマンドラインツールを使用して、特定のソフトウェアパッケージが Linux システムにインストールされているかどうかを確認する方法を学びます。apt list --installed コマンドを使ってインストールされているパッケージの包括的なリストを取得し、grep を使ってこのリストをフィルタリングする方法を探ります。
さらに、dpkg -l および apt policy コマンドを使用して、パッケージのインストールを検証し、インストールされているパッケージに関する詳細情報を取得する方法を学びます。これにより、Debian ベースの Linux ディストリビューションでのソフトウェア管理に必要なスキルを身につけることができます。
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 --installed と grep を組み合わせることで、特定のパッケージがシステムに存在するかどうかをすばやく確認できます。
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 --installed、dpkg -l、apt policy)を学びました。これらのコマンドは、Debian ベースの Linux システムでソフトウェアを管理するための重要なツールです。
Continue をクリックして、この実験を完了してください。
まとめ
この実験では、3 つの異なるコマンドラインツールを使用して、Linux システムにパッケージがインストールされているかどうかを確認する方法を学びました。まず、apt list --installed を使用して、インストールされているすべてのパッケージの包括的なリストを取得し、grep を使用してこの出力をフィルタリングして特定のパッケージを見つける方法を学びました。
次に、Debian パッケージを管理するための別のコマンドラインツールである dpkg -l を調べ、パッケージのインストール状態を検証し、その詳細を表示しました。最後に、apt policy を使用して、パッケージのインストール詳細(バージョンやソースなど)を調べ、システム上でパッケージがどのように管理されているかをより深く理解しました。



