LinuxではWindowsの「インストーラー」に相当する仕組みとして パッケージマネージャ があります。 コマンド一つでソフトウェアのインストール・更新・削除ができ、依存関係の解決も自動で行ってくれます。 ディストリビューション(OS の種類)によって使うコマンドが異なるため、代表的な3つを押さえておきましょう。
| ディストリビューション | パッケージマネージャ |
|---|---|
| Ubuntu / Debian | apt |
| CentOS / RHEL (旧) | yum |
| Fedora / RHEL 8+ | dnf |
パッケージリストを更新する
インストールの前にパッケージの情報を最新化します。特に apt では必須の習慣です。
# apt(Debian系)
sudo apt update
# dnf(Fedora / RHEL 8+)
sudo dnf check-update
ポイント:
apt updateはインストール済みパッケージのリストを更新するだけで、実際のアップグレードは行いません。
パッケージをインストールする
# apt
sudo apt install パッケージ名
# yum
sudo yum install パッケージ名
# dnf
sudo dnf install パッケージ名
複数のパッケージを一度にインストールするにはスペース区切りで並べます。
sudo apt install curl wget git
パッケージを検索する
名前や説明文でパッケージを探せます。
# apt — パッケージ名と説明文を検索
apt search キーワード
# dnf
dnf search キーワード
特定パッケージの詳細情報を確認するには show / info を使います。
# apt
apt show nginx
# dnf
dnf info nginx
インストール済みパッケージを一覧表示する
# apt
dpkg -l
# yum / dnf
rpm -qa
grep と組み合わせると特定パッケージだけ絞り込めます。
dpkg -l | grep python
パッケージを更新する
# apt — インストール済みパッケージをすべてアップグレード
sudo apt upgrade
# dnf
sudo dnf upgrade
特定のパッケージだけ更新する場合はパッケージ名を指定します。
sudo apt install --only-upgrade nginx
sudo dnf upgrade nginx
パッケージを削除する
# apt — パッケージ本体のみ削除
sudo apt remove パッケージ名
# apt — 設定ファイルも含めて完全削除
sudo apt purge パッケージ名
# dnf
sudo dnf remove パッケージ名
不要な依存パッケージを掃除する
パッケージを削除した後、依存していたパッケージが孤立することがあります。
# apt
sudo apt autoremove
# dnf
sudo dnf autoremove
よくある使い方の組み合わせ例
# システム全体を最新化する(apt の定番コマンド)
sudo apt update && sudo apt upgrade -y
# パッケージをインストールし、確認プロンプトをスキップ
sudo dnf install -y httpd
# あるファイルを提供しているパッケージを調べる
dpkg -S /usr/bin/curl # Debian系
rpm -qf /usr/bin/curl # Red Hat系
練習問題
問題 1
Ubuntu 環境で tree コマンドをインストールするには、次のどのコマンドが正しいですか?
apt get treesudo apt install treesudo apt update treeyum install tree
問題 2
インストール済みパッケージの一覧から “vim” を含む行だけを表示するコマンドを書いてください(Debian系の環境とします)。
問題 3
Fedora 環境で nginx をインストールした後、設定を間違えたので完全に削除したいです。コマンドを書いてください。
問題 4
sudo apt upgrade を実行する前に必ず行うべきコマンドは何ですか?その理由も答えてください。
答え
問題 1 の答え
2. sudo apt install tree
apt getは存在しないコマンドです(正しくはaptまたはapt-get)。sudo apt update treeはパッケージ名をupdateに渡せません。yumは Red Hat 系のコマンドのため Ubuntu では使えません。
問題 2 の答え
dpkg -l | grep vim
dpkg -l で全パッケージ一覧を出力し、パイプで grep に渡して “vim” を含む行だけ絞り込みます。
問題 3 の答え
sudo dnf remove nginx
apt とは異なり、dnf には purge サブコマンドがありません。設定ファイルも含めて削除したい場合は rpm コマンドで個別に対処するか、dnf remove 後に手動で /etc/nginx/ などを削除します。
問題 4 の答え
sudo apt update
apt update を先に実行してパッケージリスト(どのバージョンが存在するかの情報)を最新化しないと、古い情報をもとにアップグレードが行われ、最新のバージョンに更新されない場合があります。