変更要約: 初版(主題1.04・副主題1.04.1〜1.04.4に対応)
4.1aptコマンドによるパッケージ管理
Debian/Ubuntu 系のリポジトリを利用したパッケージ管理を学びます。apt(apt-get・apt-cache・apt-file)によるインストール・アップデート・アンインストール、特定のファイルを含むパッケージの検索、/etc/apt/sources.list によるリポジトリ設定を押さえます。
Linux のソフトウェア導入は「どこかからダウンロードして実行」ではなく、リポジトリ(配布サーバー)からパッケージを取り寄せ、依存関係ごと管理するのが基本です。Debian/Ubuntu 系の窓口が apt で、依存関係の自動解決が最大の価値です。
4.1.1apt の基本操作
- インストール=
apt install nginx/削除=apt remove nginx(設定も消すならapt purge)/索引の更新=apt update(リポジトリの最新情報を取得)/パッケージの更新=apt upgrade。 - apt-get・apt-cache=従来からの低レベルコマンド(apt はこれらの主要機能を統合した対話向けの新顔)。検索・情報表示=
apt-cache search キーワード・apt-cache show パッケージ(apt ではapt search・apt show)。 - 特定のファイルを含むパッケージを探す=apt-file(
apt-file search /usr/bin/convert。未インストールのパッケージも検索対象。要apt-file update)。 - リポジトリの定義=/etc/apt/sources.list(および /etc/apt/sources.list.d/)。ここに列挙された URL から索引とパッケージを取得する。
「apt update=索引の更新(パッケージ自体は更新しない)/apt upgrade=パッケージの更新」 の区別が最頻出です。「未インストールも含めてファイル→パッケージを逆引き=apt-file」「リポジトリ定義=/etc/apt/sources.list」 もセットで覚えます。
「nginx を最新にしたいのに古いまま」というトラブルの典型原因が、apt update の意味の誤解です。apt は手元に持っている索引(パッケージ一覧のカタログ)を基準に動くため、まず apt update でカタログを新しくし、それから apt upgrade(または apt install nginx で個別に)を実行する2段構えが正しい手順です。apt remove と apt purge の違いも運用で効きます:remove は本体だけを消して設定ファイルを残す(再インストールで設定復活)、purge は設定ごと消します。「ImageMagick の convert コマンドはどのパッケージに入っている?」のような逆引きは、インストール済みなら dpkg -S(次節)、未インストールまで含めるなら apt-file と、対象範囲でツールを選びます。企業内ミラーや追加リポジトリを使う場合は /etc/apt/sources.list に行を足しますが、その後の apt update を忘れると新リポジトリは反映されません。
| 目的 | コマンド | 要点 |
|---|---|---|
| 索引を最新化 | apt update | パッケージは更新しない |
| 全パッケージを更新 | apt upgrade | update 後に実行 |
| 設定ごと削除 | apt purge | remove は設定を残す |
| ファイル→パッケージ逆引き | apt-file search | 未インストールも対象 |
ひっかけ: 「apt update を実行すればインストール済みパッケージが最新版になる」は誤りです。update が更新するのはリポジトリの索引だけで、パッケージ本体の更新は upgrade です。また「apt remove は設定ファイルも削除する」も誤り=設定ごと消すのは purge です。
4.1.2この節のまとめ
- update=索引・upgrade=本体の2段構え。install/remove/purge・検索は apt-cache(apt search)
- ファイル逆引き=apt-file(未インストール含む)・リポジトリ定義=/etc/apt/sources.list
進捗の記録にはログインが必要です。
理解度チェック
(軽い確認用)Q1. Ubuntu サーバーで、リポジトリの最新のパッケージ情報を取得してからインストール済みパッケージを最新化したい。正しい手順は?
Q2. まだインストールしていないパッケージも含めて、「/usr/bin/convert というファイルを提供するパッケージ」を調べたい。適切なコマンドは?
Q3. apt が参照するリポジトリの URL を定義しているファイルはどれ?

