手当たり次第に書くんだ

飽きっぽいのは本能

Ubuntu 22.04 apt update / apt upgrade の基本 – 手動アップデートの確認手順

Ubuntu 22.04 で手動アップデートを行う場合、基本になるのは apt updateapt upgrade です。元の記事タイトルでは upgrage と誤記していましたが、正しくは upgrade です。

この記事では、apt updateapt upgradeapt full-upgrade の違い、更新前後の確認、再起動が必要かどうかの確認、自動更新との役割分担を整理します。

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-pkgs

full-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 が関係することがあります。サーバーを手動で操作している場合は問題になりにくいですが、Ansible などで自動実行する場合は入力待ちになることがあります。

自動化する場合は、APT の TUI 抑止や needrestart の設定を別記事の方針に合わせて整理します。

プロキシ環境での注意

プロキシ環境では、apt update の通信がプロキシを通るように設定されているか確認します。また、外部リポジトリの GPG 鍵取得は APT のプロキシ設定とは別経路になることがあるため、keyring と signed-by 方式で整理する方が扱いやすいです。

apt-config dump | grep -i proxy
sudo apt update

unattended-upgrades との役割分担

手動アップデートと unattended-upgrades は役割が違います。手動アップデートは、更新内容を確認しながら実施する運用です。unattended-upgrades は、主にセキュリティ更新を自動適用するための仕組みです。

方式向いている用途注意点
手動アップデート更新内容を確認しながら進める運用者が定期的に実施する必要がある
unattended-upgradesセキュリティ更新の自動適用自動更新範囲と再起動方針を決める必要がある
構成管理ツール複数サーバーの更新手順を統一する入力待ちや再起動制御を設計する必要がある

まとめ

Ubuntu 22.04 の手動アップデートでは、apt update でパッケージ一覧を更新し、apt upgrade で実際の更新を行います。必要に応じて full-upgrade を検討しますが、削除されるパッケージがないか確認してから実行します。

サーバー運用では、更新前の確認、入力待ち対策、プロキシ設定、再起動確認、自動更新との役割分担まで含めて考えることが重要です。

参考
書籍
参考書籍

Advanced Ubuntu Administration and Management Best Practices

Ubuntu Server の運用項目を体系的に確認したい場合の参考書籍です。価格や在庫はリンク先で確認してください。

Amazon で見る

このリンクは Amazon アソシエイトリンクです。

関連記事

Ubuntu 22.04 apt update / apt upgrade の基本 – 手動アップデートの確認手順

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る