コンテンツにスキップ
PR

更新確認コマンド

  • アップデートを安全に行うための5つの基本ステップ
  • 主要ディストリビューション別の更新確認・実行コマンド一覧
  • Ubuntu/Debianにおける apt updateapt upgrade の違い
  • FedoraやArch Linuxにおけるアップデート時のコマンドと注意点
  • 本番サーバー環境で一括更新を避けるべき理由と、更新前後のチェックリスト

Linuxのシステムやインストールされているパッケージを最新に保つことは、セキュリティ脆弱性からシステムを守るために極めて重要です。

しかし、結論として、サーバー本番環境や安定性が求められる開発マシンにおいて、「無条件でいきなり一括更新コマンドを実行する」のは非常に危険です

アップデートによって、動作していたデータベースやプログラムの仕様が変わり、アプリが突然動かなくなる「依存性の崩壊」のリスクがあるためです。安全なアップデートは、以下の順番で丁寧に進める習慣をつけましょう。

  1. 更新対象のパッケージの確認(何が新しくなるか把握する)
  2. システムのバックアップ(直前の状態へ戻せるようにする)
  3. メンテナンス時間(サービス停止時間)の確保(本番環境の場合)
  4. アップデートの実行
  5. 再起動の要否と動作確認(サービスが正しく起動しているか)

ディストリビューション別:アップデートコマンド一覧

Section titled “ディストリビューション別:アップデートコマンド一覧”

Linuxの種類(ディストリビューション)によって、使用するパッケージマネージャーと更新コマンドが異なります。

OS系列パッケージ管理ツール更新リストの取得・確認更新の実行
Ubuntu / Debian系列aptsudo apt update
(更新可能なパッケージの表示は apt list --upgradable
sudo apt upgrade
Fedora / AlmaLinux系列dnfsudo dnf check-updatesudo dnf upgrade
Arch Linuxpacmansudo pacman -Syysudo pacman -Syu

Ubuntu / Debian:apt updateapt upgrade の違い

Section titled “Ubuntu / Debian:apt update と apt upgrade の違い”

初心者が最も混同しやすいのが、apt updateapt upgrade です。これらは全く異なる処理を行っています。

1. sudo apt update(リストの更新)

Section titled “1. sudo apt update(リストの更新)”
  • 何を行うか: インターネット上の公式サーバー(リポジトリ)にアクセスし、「どのパッケージの、どの最新バージョンが配布されているか」が書かれたインデックスリストをダウンロードして手元のPCと同期します
  • 注意点: このコマンドを実行しただけでは、システム上のソフトウェアは1つも更新されません
  • 何を行うか: apt update で取得した最新リストに基づき、手元のパッケージよりも新しいバージョンが存在する場合、実際にファイルのダウンロードとインストール(書き換え)を行います
  • 実行時のポイント: 実行すると「〇〇MBのファイルをダウンロードします。続行しますか? [Y/n]」と尋ねられます。ここで更新されるパッケージの一覧が表示されるため、重要なデータベースやWebサーバー(NginxやPostgreSQLなど)が含まれていないか目を通す癖をつけましょう。

Red Hat系のディストリビューションで使用される dnf コマンドは、apt よりもスマートに更新の絞り込みが行えます。

  • 更新候補のチェック:
    Terminal window
    sudo dnf check-update
  • システム全体の更新:
    Terminal window
    sudo dnf upgrade
  • セキュリティ修正(CVE対応)のみに絞った更新(推奨):
    Terminal window
    sudo dnf upgrade --security
    バグ修正や機能変更による不具合のリスクを最小限に抑えつつ、安全にセキュリティ脆弱性(セキュリティアドバイザリ)だけを適用したい本番サーバーの運用で極めて有効なオプションです。

Arch Linux:pacman と手動介入の注意点

Section titled “Arch Linux:pacman と手動介入の注意点”

ローリングリリースを採用するArch Linuxでは、システムの「一括更新(システム同期)」が日常業務となります。

  • システムの完全更新同期:
    Terminal window
    sudo pacman -Syu
    y はリポジトリデータベースの同期、u はインストール済みパッケージのアップグレードを示します。

Archでのアップデート時の絶対ルール

Section titled “Archでのアップデート時の絶対ルール”

Arch Linuxは最新のパッケージをほぼそのまま配布するため、稀に更新時に設定ファイルの書き換えなどを自分で行わなければならない「手動介入(manual intervention)」が発生します。

  • pacman -Syu を実行する前に、必ず Arch Linux公式サイトのニュース を確認してください。手動での修正指示がある場合は、その手順を終えてから、あるいは実行中に指示に従って作業を行います。

サーバー本番環境における更新前後のチェックリスト

Section titled “サーバー本番環境における更新前後のチェックリスト”

システムを絶対に停止できない、またはユーザーが利用中の本番サーバーでアップデートを行う際のプロのチェック手順です。

  1. バックアップの作成 クラウド(AWSなど)であればスナップショット(Snapshot)の取得、物理サーバーであればデータの退避を行います。万が一起動しなくなっても、数分でアップデート前の状態に復元できる手段を確保してください。
  2. メンテナンスウィンドウ(時間帯)の確保 深夜や利用者が最も少ない時間帯を「メンテナンス時間」として指定し、事前にユーザーへ告知した上で作業を行います。
  3. リリースノートの確認 更新対象にミドルウェア(Web、DB、言語ランタイム)のメジャーアップデートが含まれる場合、互換性が壊れていないか事前にドキュメントを確認します。
  1. 再起動が必要かどうかのチェック Linuxカーネル(linux-imageなど)やシステムライブラリ(libcなど)を更新した場合、OSを再起動するまで最新版が有効になりません。
    • needrestart コマンドの活用(Ubuntu等):
      Terminal window
      sudo needrestart
      を実行すると、現在「アップデートされたが、まだ古いプロセスのままメモリ上で動いていて、再起動が必要なサービス」の一覧や、OS全体の再起動(Reboot)が必要かを自動診断してくれます。
  2. 主要プロセスの稼働ステータス確認
    Terminal window
    sudo systemctl status nginx
    などで、主要サービスが正常に再起動し、エラーを吐いていないか確認します。
  3. ログの監視
    Terminal window
    sudo journalctl -f
    を実行しながら、WebサイトやWebアプリをブラウザで実際に操作し、バックエンドでエラーが出力されていないかを確認(疎通テスト)します。

Q1. apt-getapt はどちらを使うべきですか?

Section titled “Q1. apt-get と apt はどちらを使うべきですか?”

A1. 一般ユーザーが手動で操作する場合は、新しい apt の使用が推奨されます。 apt は、古い apt-getapt-cache などのバラバラだったコマンドを統合し、プログレスバーの表示や色の付与など、人間が操作しやすいように改良されたコマンドです。ただし、自動実行スクリプト(シェルスクリプト)を作成する場合は、出力フォーマットが安定している apt-get を使用するのが推奨されます。

Q2. アップデートを長期間放置するとどうなりますか?

Section titled “Q2. アップデートを長期間放置するとどうなりますか?”

A2. セキュリティリスクが高まるだけでなく、将来的な一括更新時にシステムが壊れるリスクが高まります。 特にArch Linuxなどのローリングリリースでは、数ヶ月放置した状態から一気に更新しようとすると、パッケージの依存関係が複雑に衝突し、アップデートエラーを解決するのが極めて困難になります。LTSバージョンのUbuntuやDebianであっても、月1回程度の定期的なセキュリティ更新を強くお勧めします。

Q3. セキュリティアップデートだけを自動で実行する設定はありますか?

Section titled “Q3. セキュリティアップデートだけを自動で実行する設定はありますか?”

A3. はい、Ubuntuでは unattended-upgrades という仕組みが標準で用意されています。 このパッケージを設定しておくことで、深夜に自動でセキュリティパッチのみをバックグラウンドでインストールしてくれます。日々の運用の手間を減らしつつ、脆弱性対応を漏れなく行うための定番の設定です。

Q4. アップデート後にOSが起動しなくなった場合の対処方法は?

Section titled “Q4. アップデート後にOSが起動しなくなった場合の対処方法は?”

A4. 起動時のブートローダー(GRUB)メニューで、一つ古いカーネルを選択して起動します。 Linuxのアップデート時、古いバージョンのカーネルは自動的に消去されず、何世代かはディスクに残されます。PCの起動直後に Esc キーまたは Shift キーを押し続けるとGRUBメニューが表示されますので、「Advanced options for Ubuntu」などから古いカーネルを選択して起動し、原因となったパッケージを削除またはロールバックしてください。

Q5. パッケージの更新履歴(過去に何が更新されたか)を確認できますか?

Section titled “Q5. パッケージの更新履歴(過去に何が更新されたか)を確認できますか?”

A5. はい、/var/log/dpkg.log(Debian/Ubuntu系)や /var/log/dnf.log(Red Hat系)で確認できます。 「昨日まで動いていたプログラムが今日突然動かなくなった」という場合、これらのログファイルを確認することで、直近でどのパッケージがいつ更新されたのかのタイムスタンプを確認することができます。