Ubuntu 18.04 Server / aptでパッケージをインストール・削除・更新する方法
Ubuntu 18.04 Serverでは、apt updateでパッケージ一覧を更新し、apt install・apt remove・apt upgradeでインストール・削除・アップグレードを行います。一覧の更新だけではプログラムは更新されません。削除や全体のアップグレード前に、変更されるパッケージを確認してください。
APTの役割と作業前の確認
APT(Advanced Package Tool)は、リポジトリのパッケージ情報と依存関係を使ってソフトウェアを管理するツール群です。依存関係とは、プログラムの実行に併せて必要なライブラリや別のパッケージを指します。例はUbuntu 18.04のAPT 1.6系を対象とし、実際のバージョンや変更計画はリポジトリとインストール状況により異なります。
Ubuntu 18.04 LTSの標準セキュリティ保守は2023年5月に終了しました。既存サーバーではUbuntu Proの拡張セキュリティ保守の適用状況やOSのアップグレード計画も確認してください。ミラー変更やapt upgradeの実行だけでサポート期間が延びるわけではありません。範囲はUbuntu公式のリリースサイクルで確認できます。
インストール・削除・一覧更新には通常sudo権限が必要ですが、検索と情報表示には不要です。本番サーバーでは設定と重要データをバックアップし、サービス再起動の可能性を考えて作業時間を決めてください。最初は自動承認の-yを付けず、変更一覧を自分で確認するとよいでしょう。
aptは端末での対話的な利用に適したインターフェースです。自動化では出力や動作の互換性を考慮し、apt-get・apt-cacheを優先して検討してください。特にapt upgradeとapt-get upgradeでは、既定の依存関係の扱いが異なります。Ubuntu 18.04のaptマニュアルを参照してください。
パッケージを検索してインストールする
例ではディレクトリ構造を表示するtreeを使います。実際のサーバーでは必要なパッケージ名に置き換え、まず説明とインストール候補バージョンを確認します。
- リポジトリから最新のパッケージ情報を取得します。エラーが出たら、次に進む前に原因を解決します。
sudo apt update
- パッケージを検索し、詳細を調べます。インストール済みバージョン、候補バージョン、取得元は
apt-cache policyで区別できます。
apt search tree
apt show tree
apt-cache policy tree
apt searchは説明も検索するため、名前にtreeを含まないパッケージが見つかる場合があります。apt showで説明・依存関係・サイズを確認し、apt-cache policyのInstalledとCandidateを比較してください。候補がない場合は、先にリポジトリと一覧更新の結果を確認します。詳しくはapt-cacheマニュアルを参照してください。
- インストールをシミュレーションし、新規インストール・更新・削除の対象を確認してから実行します。
sudo apt-get --simulate install tree
--simulateは実際のパッケージ変更を行いません。ただし計画は実行時点の状態に基づくため、本番のインストール直前にも確認画面を読んでください。想定外の削除があれば中止し、依存関係とリポジトリ構成を調べます。
sudo apt install tree
- インストール後、パッケージの登録と実行ファイルの動作を確認します。
dpkg-query -W tree
tree --version
最初のコマンドは登録済みパッケージ名とバージョン、次のコマンドは実行ファイルのバージョン情報を表示します。新しく導入するバージョンがなければ、すでに最新と表示される場合があります。必要な依存パッケージも一緒に導入されます。操作とシミュレーションの説明はapt-getマニュアルにあります。
一覧の更新とパッケージのアップグレード
updateはリポジトリの一覧を更新するだけで、インストール済みプログラムは変更しません。更新対象を確認するには次を実行します。
sudo apt update
apt list --upgradable
apt list --installed
apt list --upgradableは更新可能なパッケージ、apt list --installedはインストール済みパッケージを表示します。単独のapt listでは名前の条件などに合う一覧を表示できますが、出力が多くなる場合があります。
通常の全体更新にはsudo apt upgradeを使います。Ubuntu 18.04のapt upgradeは必要な新規依存パッケージを追加できますが、既存パッケージを削除しません。一方、既定のapt-get upgradeは新規パッケージの導入もしないため、一部の更新を保留する場合があります。
sudo apt upgrade
sudo apt full-upgradeは依存関係の解決のため既存パッケージを削除することもあります。通常の更新で保留されたからといってすぐ実行せず、導入・削除計画と重要サービスへの影響を確認してください。Ubuntu 18.04を別のUbuntuリリースに移行するディストリビューションアップグレード用のコマンドでもありません。
更新が残る場合は、apt-mark showholdで意図的に保留したパッケージも確認します。一部のパッケージだけを更新したりセキュリティ更新に絞ったりする方法は、特定パッケージ・セキュリティ更新だけを適用する方法を参照してください。作業後はapt list --upgradableを再確認し、サービスやカーネルの再起動の必要性は別途判断します。
削除と不要な依存パッケージ・キャッシュの整理
残したい設定と削除範囲に応じて方法を選びます。以下は異なる選択肢であり、すべてを順番に実行する手順ではありません。
| コマンド | 削除する範囲 |
|---|---|
apt remove tree |
パッケージを削除しますが、パッケージ管理下の設定ファイルは通常残します。 |
apt purge tree |
パッケージとその管理下の設定ファイルを削除します。ユーザーのホーム内の全ファイルを消すという意味ではありません。 |
apt autoremove |
自動導入された依存パッケージのうち、現在は不要と判断されたものを削除します。 |
たとえばtreeを削除する場合は、まずシミュレーションで一緒に削除される対象を確認し、その後実際に削除します。表の変更を伴うコマンドには、例のようにsudoを付けます。
sudo apt-get --simulate remove tree
sudo apt remove tree
設定も消したい場合は必要性を確認してsudo apt purge treeを選びます。誤ってremoveしたパッケージはsudo apt install treeで再導入できますが、purgeで消した独自設定は再導入だけでは戻らない場合があるため、バックアップが必要です。
依存パッケージの整理も先に一覧を確認します。自分で使っているツールや運用に必要なものが含まれていれば進めないでください。
sudo apt-get --simulate autoremove
sudo apt autoremove
自動削除の候補でも引き続き使うパッケージは、sudo apt-mark manual PACKAGEで手動導入としてマークできます。PACKAGEを実際の名前に置き換えてください。このマークが無関係な依存関係の問題まで直すわけではありません。apt-markマニュアルに説明があります。
導入済みプログラムを残してダウンロード済みパッケージファイルだけを整理するには、sudo apt cleanを使います。sudo apt autocleanは、もう取得できないパッケージのキャッシュファイルを整理します。どちらもautoremoveのように導入済みパッケージを削除する操作ではありません。
リポジトリの確認とミラー変更
Ubuntu 18.04では通常、/etc/apt/sources.listと/etc/apt/sources.list.d/内の個別ファイルで取得元を設定します。速度低下やミラーの失敗時には、エラーに示されたホストと実際の設定ファイルを先に確認してください。
cat /etc/apt/sources.list
ls /etc/apt/sources.list.d/
選択にはUbuntu公式のパッケージアーカイブミラー一覧を使います。インストールISO用のCDミラー一覧とは別です。地域の近さだけでなく、同期状況とbionicの提供有無も調べてください。特定のミラーが常に最速とは限りません。
- 実際に変更するファイルをバックアップします。次のバックアップ名が存在する場合は、別の名前を使って元のファイルを残します。
sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.backup
- 既定のエディターでファイルを開き、該当するUbuntuミラーのアドレス部分だけを変更します。設定が別ファイルにある場合は、そのファイルをバックアップして編集します。
sudoedit /etc/apt/sources.list
以下は1行の書式例です。これでファイル全体を上書きしないでください。ミラー変更時もbionicやbionic-updatesなどのスイートと、main・universeなど必要な既存コンポーネントを維持します。security・Ubuntu Pro・外部リポジトリまで一括置換しないでください。
deb http://archive.ubuntu.com/ubuntu bionic main restricted universe multiverse
- 保存後に一覧を更新し、必要なパッケージの候補と取得元を確認します。エラーが残る場合はインストールや更新を進めません。
sudo apt update
apt-cache policy tree
書式はUbuntu 18.04のsources.listマニュアルを参照してください。404が返っても、bionicを別のUbuntuリリースのコード名に変更してはいけません。ミラーの提供範囲と現在のサポート経路を先に調べます。
エラー発生時の確認と元に戻せる範囲
- パッケージが見つからない:名前の誤記、apt updateのエラー、必要なリポジトリ区分、対応アーキテクチャを確認します。取得元にないパッケージをコマンドだけで用意することはできません。
- ロックエラー:別のapt・dpkg作業や自動更新が動作中か確認し、正常終了を待ちます。最初からロックファイルを消したり処理を強制終了したりしないでください。
- 署名・Releaseファイルのエラー:取得元のURI、対象リリース、鍵設定、サーバー時刻を確認します。認証を無効化したり信頼性を確認せず取得元を追加したりして回避しないでください。
前のパッケージ処理が実際に中断され、他の管理処理が動いていない場合は、以下の順序で未完了の設定と依存関係の修復計画を確認できます。最初のコマンドは保留中の設定を実行するため、出力を読んでください。2つ目は修復計画のみを表示します。
sudo dpkg --configure -a
sudo apt-get --simulate --fix-broken install
計画に重要パッケージの想定外の削除がなく、修復が必要と確認できた場合に限り、sudo apt --fix-broken installを実行します。原因の異なるエラーに修復コマンドを繰り返し適用しないでください。
ミラー変更だけを元に戻す場合は、保存しておいた設定ファイルを復元して一覧を更新します。別ファイルを変更した場合はそのバックアップを使います。
sudo cp -a /etc/apt/sources.list.backup /etc/apt/sources.list
sudo apt update
この復元で戻るのは取得元の設定だけです。すでに導入・削除・更新したパッケージやサービスデータは元に戻りません。本番サーバーの変更を取り消す必要がある場合は、別途用意した設定・データのバックアップやスナップショットと、サービスごとの復旧手順を使ってください。




