まずOSに合ったコマンドを選びます。Debian / Ubuntu は dpkg –list(ii の状態を確認)、RHEL / Fedora / openSUSE は rpm -qa、Arch Linux は pacman -Q が基本です。これらはOSパッケージの一覧で、Flatpak・Snap・pip・コンテナ内など別の仕組みで導入したものをまとめて列挙するものではありません。
Linux環境で作業する際、システムにインストールされているパッケージを確認することは、システム管理やトラブルシューティングにおいて非常に重要です。本記事では、主要なLinuxディストリビューションでインストールされたパッケージの一覧を表示する方法を詳細に解説します。これにより、システムの状態を把握し、必要な管理作業を効率的に行うことができます。
dpkgコマンドを使用した方法(Debian系)
Debian系ディストリビューション(例:UbuntuやDebian)では、dpkgコマンドを使用してインストールされたパッケージの一覧を表示できます。このセクションでは、基本的なコマンドから詳細なオプションまでを紹介します。
基本コマンド
dpkgコマンドでは既知のパッケージと状態を一覧表示できます。削除済みで設定ファイルだけ残る項目も含まれるため、左端の状態を確認してください。
dpkg --list先頭が ii の行はインストール済みです。rc は本体を削除済みで設定ファイルが残る状態なので、一覧に名前があるだけではインストール済みとは判断できません。
特定のパッケージを検索する
特定のパッケージがインストールされているかを確認するためには、以下のコマンドを使用します。
dpkg-query -W -f='${binary:Package}\t${db:Status-Status}\n' [パッケージ名]例えば、curlというパッケージがインストールされているか確認するには、次のようにします。
dpkg-query -W -f='${binary:Package}\t${db:Status-Status}\n' curlインストール済みパッケージの詳細情報を表示する
インストールされている特定のパッケージの詳細情報を表示するには、以下のコマンドを使用します。
dpkg --status [パッケージ名]例えば、curlの詳細情報を表示するには次のようにします。
dpkg --status curlこれにより、パッケージのバージョン、依存関係、インストールサイズなどの詳細情報を確認できます。
rpmコマンドを使用した方法(RHEL系)
Red Hat系ディストリビューション(例:Red Hat Enterprise Linux、CentOS、Fedora)では、rpmコマンドを使用してインストールされたパッケージの一覧を表示できます。このセクションでは、基本的なコマンドから詳細なオプションまでを紹介します。
基本コマンド
rpmコマンドを使ってシステムにインストールされている全てのパッケージを一覧表示するには、以下のコマンドを使用します。
rpm -qaこのコマンドは、インストールされている全てのパッケージとそのバージョン情報を一覧表示します。
特定のパッケージを検索する
特定のパッケージがインストールされているかを確認するためには、以下のコマンドを使用します。
rpm -q [パッケージ名]例えば、curlというパッケージがインストールされているか確認するには、次のようにします。
rpm -q curlインストール済みパッケージの詳細情報を表示する
インストールされている特定のパッケージの詳細情報を表示するには、以下のコマンドを使用します。
rpm -qi [パッケージ名]例えば、curlの詳細情報を表示するには次のようにします。
rpm -qi curlこれにより、パッケージのバージョン、リリース情報、インストールサイズなどの詳細情報(依存関係は rpm -qR curl などで別途照会)を確認できます。
インストール済みファイルのリストを表示する
特定のパッケージがインストールしたファイルのリストを表示するには、以下のコマンドを使用します。
rpm -ql [パッケージ名]例えば、curlパッケージがインストールしたファイルを表示するには次のようにします。
rpm -ql curlこれにより、そのパッケージがどのファイルをシステムにインストールしたかを確認できます。
pacmanコマンドを使用した方法(Arch系)
Arch系ディストリビューション(例:Arch Linux、Manjaro)では、pacmanコマンドを使用してインストールされたパッケージの一覧を表示できます。このセクションでは、基本的なコマンドから詳細なオプションまでを紹介します。
基本コマンド
pacmanコマンドを使ってシステムにインストールされている全てのパッケージを一覧表示するには、以下のコマンドを使用します。
pacman -Qこのコマンドは、インストールされている全てのパッケージとそのバージョン情報を一覧表示します。
特定のパッケージを検索する
特定のパッケージがインストールされているかを確認するためには、以下のコマンドを使用します。
pacman -Q [パッケージ名]例えば、curlというパッケージがインストールされているか確認するには、次のようにします。
pacman -Q curlインストール済みパッケージの詳細情報を表示する
インストールされている特定のパッケージの詳細情報を表示するには、以下のコマンドを使用します。
pacman -Qi [パッケージ名]例えば、curlの詳細情報を表示するには次のようにします。
pacman -Qi curlこれにより、パッケージのバージョン、依存関係、インストールサイズなどの詳細情報を確認できます。
インストール済みファイルのリストを表示する
特定のパッケージがインストールしたファイルのリストを表示するには、以下のコマンドを使用します。
pacman -Ql [パッケージ名]例えば、curlパッケージがインストールしたファイルを表示するには次のようにします。
pacman -Ql curlこれにより、そのパッケージがどのファイルをシステムにインストールしたかを確認できます。
dnfコマンドを使用した方法(Fedora)
Fedoraでは、dnfコマンドを使用してインストールされたパッケージの一覧を表示できます。このセクションでは、基本的なコマンドから詳細なオプションまでを紹介します。
基本コマンド
dnfコマンドを使ってシステムにインストールされている全てのパッケージを一覧表示するには、以下のコマンドを使用します。
dnf list --installedこのコマンドは、インストールされている全てのパッケージとそのバージョン情報を一覧表示します。
特定のパッケージを検索する
特定のパッケージがインストールされているかを確認するためには、以下のコマンドを使用します。
dnf list --installed [パッケージ名]例えば、curlというパッケージがインストールされているか確認するには、次のようにします。
dnf list --installed curlインストール済みパッケージの詳細情報を表示する
インストールされている特定のパッケージの詳細情報を表示するには、以下のコマンドを使用します。
dnf info --installed [パッケージ名]例えば、curlの詳細情報を表示するには次のようにします。
dnf info --installed curlこれにより、パッケージのバージョンやサイズなどの情報(導入済みかは一覧の状態も確認)を確認できます。
インストール済みファイルのリストを表示する
特定のパッケージがインストールしたファイルのリストを表示するには、以下のコマンドを使用します。
rpm -ql [パッケージ名]例えば、curlパッケージがインストールしたファイルを表示するには次のようにします。
rpm -ql curlこれにより、そのパッケージがどのファイルをシステムにインストールしたかを確認できます。
zypperコマンドを使用した方法(openSUSE)
openSUSEでは、zypperコマンドを使用してインストールされたパッケージの一覧を表示できます。このセクションでは、基本的なコマンドから詳細なオプションまでを紹介します。
基本コマンド
zypperコマンドを使ってシステムにインストールされている全てのパッケージを一覧表示するには、以下のコマンドを使用します。
zypper se --installed-only --details --type packageこのコマンドは、インストールされている全てのパッケージとそのバージョン情報を一覧表示します。
特定のパッケージを検索する
特定のパッケージがインストールされているかを確認するためには、以下のコマンドを使用します。
zypper se --installed-only --match-exact --type package [パッケージ名]例えば、curlというパッケージがインストールされているか確認するには、次のようにします。
zypper se --installed-only --match-exact --type package curlインストール済みパッケージの詳細情報を表示する
インストールされている特定のパッケージの詳細情報を表示するには、以下のコマンドを使用します。
zypper info [パッケージ名]例えば、curlの詳細情報を表示するには次のようにします。
zypper info curlこれにより、パッケージのバージョンやサイズなどの情報(導入済みかは一覧の状態も確認)を確認できます。
インストール済みファイルのリストを表示する
特定のパッケージがインストールしたファイルのリストを表示するには、以下のコマンドを使用します。
rpm -ql [パッケージ名]例えば、curlパッケージがインストールしたファイルを表示するには次のようにします。
rpm -ql curlこれにより、そのパッケージがどのファイルをシステムにインストールしたかを確認できます。zypperはパッケージ管理のためのフロントエンドツールであり、実際のファイル一覧表示にはrpmコマンドを使用します。
スクリプトを使った方法
複数のコマンドを組み合わせたスクリプトを作成し、インストール済みパッケージの一覧を効率的に取得する方法を解説します。この方法は、自動化されたシステム管理や複数のディストリビューションを扱う環境で特に有用です。
シェルスクリプトの作成
以下のシェルスクリプトを作成し、インストールされたパッケージを一覧表示するために使用します。このスクリプトは、システムのディストリビューションを自動的に検出し、適切なコマンドを実行します。
#!/bin/bash
set -o pipefail
if [ ! -r /etc/os-release ]; then
echo "OS情報を読み取れません。" >&2
exit 1
fi
. /etc/os-release
case " ${ID:-} ${ID_LIKE:-} " in
*" debian "*|*" ubuntu "*)
dpkg-query -W -f='${db:Status-Status}\t${binary:Package}\t${Version}\n' | awk -F '\t' '$1 == "installed" {print $2 "\t" $3}'
;;
*" rhel "*|*" fedora "*|*" centos "*|*" suse "*|*" opensuse "*) rpm -qa ;;
*" arch "*|*" manjaro "*) pacman -Q ;;
*) echo "未対応のOSです。個別のコマンドで確認してください。" >&2; exit 1 ;;
esacこのスクリプトをファイル(例えばlist_packages.sh)として保存し、実行可能にします。
chmod +x list_packages.shスクリプトの実行
スクリプトを実行してインストールされたパッケージの一覧を表示します。
./list_packages.shスクリプトの解説
/etc/os-release の ID と ID_LIKE で系列を判断します。Debian系は状態が installed の行だけを一覧にし、RPM系は rpm、Arch系は pacman を使用します。OSや派生版によっては未対応になるため、その場合は上の個別コマンドで確認してください。
スクリプトの応用例
このスクリプトは、定期的なシステム監査やバックアップ作業の一部として使用することができます。例えば、crontabを使用して定期的にスクリプトを実行し、パッケージ一覧をログファイルに保存することができます。
0 0 * * 1 /path/to/list_packages.sh > /var/log/package_list.logこの例は毎週月曜日の0時に同じファイルを上書きします。実際のスクリプトの絶対パスに直し、実行ユーザーが書き込める保存先を指定してください。/var/log に書けない場合に一覧取得だけのために権限を広げる必要はありません。標準エラーはこの例ではログに含まれず、一覧はソフト本体や設定のバックアップにもなりません。
GUIツールを使った方法
既に導入されているパッケージ管理GUIの「インストール済み」表示を利用する方法もあります。Debian系のSynaptic、ManjaroのPamac、openSUSEのYaSTなどが例ですが、提供状況や画面名はディストリビューションとバージョンで異なります。一覧確認だけなら新しいGUIをインストールせず、上の標準コマンドを使えます。
GNOMEソフトウェアなどのアプリストアはアプリ中心の表示で、OSの全ライブラリ・パッケージの台帳ではありません。厳密な棚卸しには各パッケージマネージャーの一覧を使ってください。GUIに表示されないから未導入とは限りません。
応用例:特定のパッケージを検索する方法
特定のパッケージがシステムにインストールされているかを確認する方法について解説します。この応用例は、特定のソフトウェアが正しくインストールされているか、または依存関係が解決されているかを確認する際に役立ちます。
dpkgコマンドを使用した検索(Debian系)
Debian系では dpkg-query で名前と状態を確認します。表示された状態が installed であることを確認し、config-files と混同しないでください。
dpkg-query -W -f='${binary:Package}\t${db:Status-Status}\n' [パッケージ名]例えば、curlパッケージを検索するには次のようにします。
dpkg-query -W -f='${binary:Package}\t${db:Status-Status}\n' curlrpmコマンドを使用した検索(RHEL系)
Red Hat系ディストリビューションでは、rpmコマンドを使用して特定のパッケージを検索します。
rpm -q [パッケージ名]例えば、curlパッケージを検索するには次のようにします。
rpm -q curlpacmanコマンドを使用した検索(Arch系)
Arch系ディストリビューションでは、pacmanコマンドを使用して特定のパッケージを検索します。
pacman -Q [パッケージ名]例えば、curlパッケージを検索するには次のようにします。
pacman -Q curldnfコマンドを使用した検索(Fedora)
Fedoraでは、dnfコマンドを使用して特定のパッケージを検索します。
dnf list --installed [パッケージ名]例えば、curlパッケージを検索するには次のようにします。
dnf list --installed curlzypperコマンドを使用した検索(openSUSE)
openSUSEでは、zypperコマンドを使用して特定のパッケージを検索します。
zypper se --installed-only --match-exact --type package [パッケージ名]例えば、curlパッケージを検索するには次のようにします。
zypper se --installed-only --match-exact --type package curlスクリプトを使った汎用検索方法
複数のディストリビューションに対応した検索スクリプトを作成し、特定のパッケージを効率的に検索することも可能です。
#!/bin/bash
set -o pipefail
if [ ! -r /etc/os-release ]; then
echo "OS情報を読み取れません。" >&2
exit 1
fi
. /etc/os-release
if [ "$#" -ne 1 ] || [[ ! "$1" =~ ^[A-Za-z0-9][A-Za-z0-9.+:_-]*$ ]]; then
echo "使い方: $0 パッケージ名" >&2
exit 2
fi
PACKAGE=$1
case " ${ID:-} ${ID_LIKE:-} " in
*" debian "*|*" ubuntu "*)
dpkg-query -W -f='${binary:Package}\t${db:Status-Status}\n' "$PACKAGE" ;;
*" rhel "*|*" fedora "*|*" centos "*|*" suse "*|*" opensuse "*) rpm -q "$PACKAGE" ;;
*" arch "*|*" manjaro "*) pacman -Q "$PACKAGE" ;;
*) echo "未対応のOSです。個別のコマンドで確認してください。" >&2; exit 1 ;;
esacこのスクリプトをファイル(例えばsearch_package.sh)として保存し、以下のように実行します。
chmod +x search_package.sh
./search_package.sh curlこのスクリプトは OS 系列に応じて指定名を照会します。Debian系では installed / config-files などの状態も表示するため、終了コードや名前の有無だけで導入済みと判定しないでください。引数は正確なパッケージ名を1つ指定します。
特定のパッケージを検索する方法を知っておくことで、システム管理やトラブルシューティングの際に役立ちます。また、複数のディストリビューションを扱う環境でも、一貫した方法でパッケージの状態を確認することができます。
まとめ
本記事では、主要なLinuxディストリビューションにおいて、インストールされたパッケージの一覧を表示する方法を詳細に解説しました。Debian系、Red Hat系、Arch系、Fedora、openSUSEそれぞれのコマンドラインツールやGUIツールを活用し、効率的にパッケージ管理を行うための手法を提供しました。
各コマンドおよびツールを利用することで、システムの管理やトラブルシューティングが容易になり、作業効率の向上が期待できます。特に、スクリプトを使った方法や特定のパッケージを検索する方法は、日常のシステム運用において非常に有用です。
最後に、どのディストリビューションを使用している場合でも、自分の環境に最適な方法を選択し、システム管理をより効果的に行いましょう。


コメント