Ubuntu 22.04 で手動アップデートを行う場合、基本になるのは apt update と apt upgrade です。前者はパッケージ一覧の更新、後者はインストール済みパッケージの更新です。
この記事は、Ubuntu 22.04 の既存環境で手動更新手順を見直すための記事です。更新対象の確認、full-upgrade の扱い、再起動要否、非対話更新、Proxy 環境での注意点を分けて確認します。
apt updateとapt upgradeの違い- 更新前に確認する項目
full-upgradeを使う場合の注意点- 再起動が必要かどうかの確認
- 自動更新や Proxy 環境との関係
書籍
Advanced Ubuntu Administration and Management Best Practices
Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。
Amazon で見るこのリンクは Amazon アソシエイトリンクです。
apt update と apt upgrade の違い
apt update は、リポジトリからパッケージ一覧を取得して、ローカルのパッケージ情報を更新するコマンドです。パッケージ本体の更新は行いません。
apt upgrade は、取得済みのパッケージ一覧をもとに、インストール済みパッケージを更新します。通常は apt update の後に apt upgrade を実行します。
| コマンド | 役割 | 注意点 |
|---|---|---|
apt update | パッケージ一覧を更新する | パッケージ自体は更新しない |
apt upgrade | 更新可能なパッケージを更新する | 削除が必要な更新は保留されることがある |
apt full-upgrade | 依存関係に応じて追加や削除も含めて更新する | 影響が大きいため内容確認が重要 |
更新前に確認すること
サーバー運用では、いきなり更新するより、更新対象と状態を確認してから進める方が安全です。
sudo apt update
apt list --upgradable更新対象が多い場合、カーネル、OpenSSL、systemd、サービス系パッケージなど、再起動やサービス再起動の影響がありそうなものを確認します。
手動更新を実行する
基本的な手動更新は次の流れです。対話を抑止したい場合は、サーバー運用方針に合わせて DEBIAN_FRONTEND=noninteractive や dpkg オプションを使います。
sudo apt update
sudo apt upgrade自動化や構成管理で使う場合は、設定ファイル差分で入力待ちにならないようにすることがあります。ただし、設定ファイルを既存優先にするか新規優先にするかは運用方針に関わります。意味を理解せずに固定すると、必要な設定変更を見落とすことがあります。
sudo DEBIAN_FRONTEND=noninteractive apt -y -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold upgrade --with-new-pkgsfull-upgrade を使う場合
apt full-upgrade は、依存関係の解決に必要であればパッケージの追加や削除も行います。通常の upgrade で保留された更新を進める場合に使うことがあります。
削除されるパッケージがある場合は影響が大きいため、実行前にシミュレーションで内容を確認します。
sudo apt full-upgrade -s
sudo apt full-upgrade-s はシミュレーションです。実際に変更せず、どのような処理が行われるかを確認できます。
再起動が必要か確認する
カーネルや重要なライブラリが更新された場合、再起動が必要になることがあります。Ubuntu では /var/run/reboot-required が作成されているか確認します。
if [ -f /var/run/reboot-required ]; then
cat /var/run/reboot-required
fi
if [ -f /var/run/reboot-required.pkgs ]; then
cat /var/run/reboot-required.pkgs
fi再起動が必要な場合は、サービス影響を確認した上でメンテナンス時間に再起動します。
needrestart の入力待ちに注意する
Ubuntu では、更新後に再起動が必要なサービスやカーネルを確認するため、needrestart が関係することがあります。手動操作では判断できますが、構成管理で自動実行する場合は入力待ちになることがあります。
自動化する場合は、APT の TUI 抑止や needrestart の設定を別途確認します。入力待ちを避けることと、サービス影響を確認しないことは別問題です。
Proxy 環境での注意
Proxy 環境では、apt update の通信が Proxy を通るように設定されているか確認します。また、外部リポジトリの GPG 鍵取得は APT の Proxy 設定とは別経路になることがあるため、keyring と signed-by 方式で扱う方が判断しやすくなります。
apt-config dump | grep -i proxy
sudo apt updateunattended-upgrades との役割分担
手動更新と unattended-upgrades は役割が違います。手動更新は、更新内容を確認しながら実施する運用です。unattended-upgrades は、主にセキュリティ更新を自動適用するための仕組みです。
| 方式 | 向いている用途 | 注意点 |
|---|---|---|
| 手動更新 | 更新内容を確認しながら進める | 運用者が定期的に実施する必要がある |
unattended-upgrades | セキュリティ更新の自動適用 | 自動更新範囲と再起動方針を決める必要がある |
| 構成管理ツール | 複数サーバーの更新手順を統一する | 入力待ちや再起動制御を設計する必要がある |
まとめ
Ubuntu 22.04 の手動更新では、apt update でパッケージ一覧を更新し、apt upgrade で実際の更新を行います。必要に応じて full-upgrade を検討しますが、削除されるパッケージがないか確認してから実行します。
サーバー運用では、更新前の確認、入力待ち対策、Proxy 設定、再起動確認、自動更新との役割分担まで含めて考えることが重要です。手動更新は単なるコマンド実行ではなく、変更内容と影響範囲を確認する作業として扱います。

