Ubuntu 24.04、22.04、20.04 で無人アップグレードを構成する方法

Ubuntu は、サーバー、デスクトップ、組み込みデバイスで広く使用されている、最も人気のある Linux ベースのオペレーティング システムの 1 つです。ユーザーがニーズに合わせてインストールおよび構成できるソフトウェア パッケージとツールの膨大なライブラリを提供しています。ただし、多数のパッケージと更新があるため、システムを最新かつ安全な状態に保つことは困難です。そこで、無人アップグレード パッケージの出番です。この記事では、無人アップグレード パッケージとは何か、その利点と機能について説明し、コマンド ライン ターミナルを使用して Ubuntu 24.04、22.04、または 20.04 LTS リリースで無人アップグレードを設定および構成する手順を説明します。

無人アップグレード パッケージとは何ですか?

Unattended Upgrades は、Ubuntu システムへのセキュリティおよびその他のアップデートのインストールを自動化するパッケージです。バックグラウンドで静かに実行され、定期的に新しいアップデートをチェックし、ユーザーの介入なしに自動的にダウンロードしてインストールします。Unattended Upgrades パッケージは、最新のアップデートとパッチでシステムを最新の状態に保ち、システムのセキュリティと安定性を確保するための重要なツールです。

無人アップグレード セットアップの利点と機能:

Ubuntu の無人アップグレード パッケージの利点と機能は次のとおりです。

  • 自動更新: 無人アップグレード パッケージは更新のダウンロードとインストールを自動化し、ユーザーの時間と労力を節約します。
  • セキュリティの強化: このパッケージにより、システムが常に最新のセキュリティ更新とパッチで最新の状態に保たれ、マルウェア攻撃やシステムの脆弱性のリスクが軽減されます。
  • 安定性の向上: 無人アップグレード パッケージは、システムを最新の状態に保つことで、システムの安定性と信頼性を保証します。
  • カスタマイズ可能な設定: ユーザーは、どの更新プログラムを自動的にインストールするか、どの更新プログラムを無視するか、いつインストールするかなど、ニーズに応じてパッケージ設定をカスタマイズできます。
  • 通知システム: パッケージはインストールされた更新に関する通知をユーザーに送信し、システム更新の透明性と制御を提供します。

Ubuntuをアップデートする

無人アップグレード パッケージをインストールして設定する前に、競合を避けるために Ubuntu システムを更新する必要があります。Ubuntu システムを更新するには、ターミナルを開いて次のコマンドを入力します。

sudo apt update && sudo apt upgrade

このコマンドは、インストールされているすべてのパッケージとその依存関係を最新バージョンに更新します。システムで利用可能な更新の数によっては、しばらく時間がかかる場合があります。

無人アップグレードパッケージのインストール

無人アップグレード パッケージをインストールするには、ターミナルを開いて次のコマンドを入力します。

sudo apt install unattended-upgrades

このコマンドは、パッケージとそのすべての依存関係を Ubuntu システムにインストールします。パッケージはデフォルトでインストールされるはずです。ただし、削除した場合は、上記のコマンドを使用して再インストールしてください。

システムを自動的に再起動する必要があるアップグレードを適用した後に Ubuntu システムを再起動する場合は、apt-config-auto-update パッケージもインストールする必要があります。インストールするには、次のコマンドを使用します。

sudo apt install apt-config-auto-update

また、ラップトップ ユーザーは、無人バッテリ オプションを使用するために powermgmt-base パッケージをインストールすることをお勧めします。このパッケージをインストールするには、ターミナルを開いて次のコマンドを入力します。

sudo apt install powermgmt-base

パッケージをインストールしたら、ニーズに合わせて構成する必要があります。たとえば、どの更新を自動的にインストールするか、どの更新を無視するか、いつインストールするかをカスタマイズできます。無人アップグレード パッケージを実行するには、ルート権限が必要であることに注意してください。したがって、このガイドに記載されているすべてのコマンドは、sudo コマンドを使用して実行する必要があります。

無人アップグレード パッケージが正しく動作していることを確認することも推奨されます。これを行うには、ターミナルを開いて次のコマンドを入力します。

sudo unattended-upgrades --dry-run --debug

変更を加えた後や再起動した後にステータスを確認する必要がある可能性があるため、無人アップグレードの systemctl コマンドに精通しておくことが重要です。無人アップグレードのステータスを確認するには、次のコマンドを使用します。

systemctl status unattended-upgrades

次の systemctl コマンドを使用すると、無人アップグレード サービスを開始、停止、起動時に有効化、起動時に無効化、または再起動できます。

無人サービスを開始します。

sudo systemctl start unattended-upgrades

無人サービスを停止します。

sudo systemctl stop unattended-upgrades

起動時に無人サービスを有効にします。

sudo systemctl enable unattended-upgrades

起動時に無人サービスを無効にします。

sudo systemctl disable unattended-upgrades

無人サービスを再起動します。

sudo systemctl restart unattended-upgrades

無人アップグレードを構成する

このセクションでは、ターミナル コマンドを使用して構成ファイルで無人アップグレード パッケージ設定を構成する方法について説明します。これらの設定はオプションであり、要件に応じてカスタマイズできることに注意してください。各設定について詳しく説明し、その目的と機能を理解しやすくします。これにより、Ubuntu システムで無人アップグレード パッケージを構成する際に、情報に基づいた決定を行うことができます。

設定ファイルに入る前に、まず、無人アップグレード パッケージのすべての CLI オプションの概要と説明を示します。

オプション説明
-h、--ヘルプヘルプメッセージを表示して終了します
-d、--デバッグデバッグメッセージを有効にする
–apt-デバッグapt/libapt が詳細なデバッグメッセージを出力するようにします
-v、--詳細情報メッセージを有効にする
– ドライランアップグレードプロセスをシミュレートし、ダウンロードしますが、インストールは行いません。
–ダウンロードのみアップグレードのダウンロードのみを行います。インストールは行わないでください。
–最小限のアップグレード手順最小限のステップでパッケージをアップグレードします(SIGTERMによる中断を許可します) - これはデフォルトの動作です
– 最小限のアップグレード手順なし小さなセットではなく、すべてのパッケージをまとめてアップグレードします

これらのオプションは、ターミナルで unattended-upgrade コマンドを実行するときに使用して、自動アップグレード プロセスの動作を制御できます。たとえば、–dry-run オプションを使用すると、実際にシステムに変更を加えずにアップグレード プロセスをテストできます。一方、–download-only オプションを使用すると、アップグレードをインストールせずにダウンロードできます。

–minimal-upgrade-steps オプションは、無人アップグレードのデフォルトの動作ですが、–no-minimal-upgrade-steps オプションは、小さなセットではなくすべてのパッケージをまとめてアップグレードします。無人アップグレードを構成するときにこれらのオプションを理解することは、動作が好みや要件に一致することを確認するために重要です。

設定ファイルの編集

設定ファイルを編集するには、nano などのルート権限を持つテキスト エディターを使用することをお勧めします。nano でファイルを開くには、次のコマンドを実行します。

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

これにより、nano エディターで設定ファイルが開きます。ここから、上記のさまざまなオプションを変更できます。オプションを有効にするには、ファイル内のコメント (「//」または「#」で始まる行) を忘れずに削除してください。

ファイルの編集が完了したら、「Ctrl+X」を押し、「Y」を押し、「Enter」を押して保存して終了します。

許可されたオリジン

このオプションは、更新をインストールするソースを指定します。デフォルトでは、セキュリティ リポジトリと更新リポジトリのみが許可されます。次の例に示すように、このオプションのコメントを解除して必要なリポジトリを追加することで、リストにリポジトリを追加できます。

Unattended-Upgrade::Allowed-Origins {
      "${distro_id}:${distro_codename}";
      "${distro_id}:${distro_codename}-security";
      "${distro_id}:${distro_codename}-updates";
      "${distro_id}:${distro_codename}-proposed";
      "${distro_id}:${distro_codename}-backports";
};

パッケージブラックリスト

このオプションを使用すると、自動更新から除外するパッケージを指定できます。パッケージを除外するには、このオプションのコメントを解除し、次の例に示すように必要なパッケージを追加します。

Unattended-Upgrade::Package-Blacklist {
      "my-package";
      "my-other-package";
};

自動修正中断Dpkg

このオプションは、中断された「dpkg」インストールをシステムが自動的に修復するかどうかを決定します。自動修復を有効にするには、次の例に示すように、値を「true」に設定します。

Unattended-Upgrade::AutoFixInterruptedDpkg "true";

DevRelease「自動」

このオプションは、開発リリースに自動的にアップグレードするかどうかを指定します。デフォルトでは、このオプションは無効になっています。開発リリースへの自動アップグレードを有効にするには、次の例に示すように、値を「auto」に設定します。

Unattended-Upgrade::DevRelease "auto";

最小限のステップ「true」

このオプションは、アップグレード中に最小限の手順を実行するかどうかを指定します。デフォルトでは、このオプションは有効になっています。最小限の手順を無効にするには、次の例に示すように、値を「false」に設定します。

Unattended-Upgrade::MinimalSteps "false";

InstallOnShutdown “false”

このオプションは、シャットダウン時にアップグレードをインストールするかどうかを指定します。デフォルトでは、このオプションは無効になっています。シャットダウン時にインストールを有効にするには、次の例に示すように、値を「true」に設定します。

Unattended-Upgrade::InstallOnShutdown "true";

郵便

このオプションは、通知を送信するメール アドレスを指定します。デフォルトでは、通知は送信されません。メール アドレスを指定するには、次の例に示すように、文字列値として追加します。

Unattended-Upgrade::Mail "example@mail.com";

メールレポート「変更時」

このオプションは、電子メール通知を送信するタイミングを指定します。デフォルトでは、変更があった場合にのみ通知が送信されます。毎回通知を送信するには、次の例に示すように、値を「on-start」に設定します。

Unattended-Upgrade::MailReport "on-start";

未使用のカーネルパッケージを削除する

このオプションは、アップグレード後に未使用のカーネル パッケージを削除するかどうかを指定します。デフォルトでは、このオプションは有効になっています。未使用のカーネル パッケージの削除を無効にするには、次の例に示すように、値を「false」に設定します。

Unattended-Upgrade::Remove-Unused-Kernel-Packages "false";

新しい未使用の依存関係を削除する

この設定は、パッケージのアップグレード後にシステムが不要になった新しい依存関係の削除を制御します。この設定はデフォルトで有効になっており、不要になった新しい依存関係はシステムから自動的に削除されます。この設定を有効にするには、次のコマンドを使用します。

Unattended-Upgrade::Remove-New-Unused-Dependencies "true";

これらの新しい依存関係を保持する場合は、値を「false」に変更してこの設定を無効にすることができます。ただし、これにより未使用の依存関係がシステムに蓄積され、貴重なディスク領域が占有される可能性があることに注意してください。

未使用の依存関係を削除する

このオプションは、アップグレード後に未使用の依存関係を削除するかどうかを指定します。デフォルトでは、このオプションは無効になっています。未使用の依存関係の削除を有効にするには、次の例に示すように、値を「true」に設定します。

Unattended-Upgrade::Remove-Unused-Dependencies "true";

自動再起動

このオプションは、アップグレード後にシステムを自動的に再起動するかどうかを指定します。デフォルトでは、このオプションは無効になっています。自動再起動を有効にするには、次の例に示すように、値を「true」に設定します。

Unattended-Upgrade::Automatic-Reboot "true";

ユーザーによる自動再起動

このオプションは、ユーザーが自動的にログインしたときにシステムを再起動するかどうかを指定します。デフォルトでは、このオプションは有効になっています。ユーザーがログインしたときに自動的に再起動しないようにするには、次の例に示すように、値を「false」に設定します。

Unattended-Upgrade::Automatic-Reboot-WithUsers "false";

自動再起動時間

このオプションは、アップグレード後にシステムが自動的に再起動する時間を指定します。デフォルトでは、このオプションは「02:00」に設定されています。再起動時間を変更するには、次の例に示すように値を変更します。

Unattended-Upgrade::Automatic-Reboot-Time "03:00";

取得::http::Dl-Limit

このオプションは、パッケージ ダウンロードの最大ダウンロード速度をキロバイト/秒単位で指定します。デフォルトでは、このオプションは無効になっています。ダウンロード速度の制限を有効にするには、次の例に示すように、値を希望の速度に設定します。

Acquire::http::Dl-Limit "100";

Syslog を有効にする

このオプションは、アップグレード イベントをシステム ログに記録するかどうかを指定します。デフォルトでは、このオプションは有効になっています。ログ記録を無効にするには、次の例に示すように、値を「false」に設定します。

Unattended-Upgrade::SyslogEnable "false";

Syslog機能

このオプションは、アップグレード イベントを記録するファシリティを指定します。デフォルトでは、イベントは「デーモン」ファシリティに記録されます。イベントを別のファシリティに記録するには、次の例に示すように値を変更します。

Unattended-Upgrade::SyslogFacility "local7";

AC電源のみ

このオプションは、システムが AC 電源に接続されている場合にのみアップグレードを実行するかどうかを指定します。デフォルトでは、このオプションは無効になっています。AC 電源でのみアップグレードを有効にするには、次の例に示すように、値を「true」に設定します。

Unattended-Upgrade::SyslogFacility "local7";

従量制接続での更新をスキップ

このオプションは、システムが従量制接続に接続されているときに更新をスキップするかどうかを指定します。デフォルトでは、このオプションは有効になっています。従量制接続で更新をダウンロードするには、次の例に示すように値を「false」に設定します。

Unattended-Upgrade::Skip-Updates-On-Metered-Connections "false";

冗長

このオプションは、詳細なアップグレード情報を出力するかどうかを指定します。デフォルトでは、このオプションは無効になっています。詳細な出力を有効にするには、次の例に示すように、値を「true」に設定します。

Unattended-Upgrade::Verbose "true";

デバッグ

このオプションは、アップグレード中にデバッグ情報を出力するかどうかを指定します。デフォルトでは、このオプションは無効になっています。デバッグ出力を有効にするには、次の例に示すように、値を「true」に設定します。

Unattended-Upgrade::Debug "true";

ダウングレードを許可

このオプションは、アップグレード中にパッケージのダウングレードを許可するかどうかを指定します。デフォルトでは、このオプションは無効になっています。ダウングレードを許可するには、次の例に示すように、値を「true」に設定します。

Unattended-Upgrade::Allow-downgrade "true";

ダウングレードを許可すると危険であり、システムの不安定化やセキュリティの脆弱性につながる可能性があることに注意してください。必要な場合にのみこのオプションを有効にし、関連するリスクを慎重に検討することをお勧めします。

変更のテストと適用

構成ファイルに変更を加えた後は、変更が適用されていることを確認するために次のコマンドを実行することが重要です。

sudo unattended-upgrades --dry-run --debug

このコマンドはアップグレードの実行をシミュレートし、構成ファイルに加えた変更によって発生する可能性のあるエラーや警告を表示します。すべてが問題なければ、以下のコマンドを実行して実際のアップグレードを実行できます。

sudo unattended-upgrades

このコマンドは、構成設定に基づいて利用可能なアップグレードを自動的に確認してインストールします。

上記の手順を実行すると、Ubuntu システムで Unattended-Upgrades パッケージを構成および変更する方法をよりよく理解できるようになります。

Cron ジョブによる自動アップグレードのスケジュール設定

Ubuntu システムで自動無人アップグレードをスケジュールするには、cron ジョブを使用できます。cron ジョブは、Linux の時間ベースのタスク スケジューラであり、指定した時間または間隔でコマンドまたはスクリプトを自動的に実行できます。

無人アップグレード用の cron ジョブを作成するには、次の手順に従います。

次のコマンドを実行して、crontab 構成ファイルを開きます。

sudo crontab -e

これにより、nano エディターで crontab ファイルが開きます。ファイルの末尾に次の行を追加します。

0 0 * * * /usr/bin/unattended-upgrade -d

この行は、una​​ttended-upgrade コマンドを毎日深夜 (0 0 * * *) に実行することを指定します。「Ctrl+X」、次に「Y」、最後に「Enter」を押してファイルを保存して終了します。

上記の cron ジョブは、毎日深夜に unattended-upgrade コマンドを実行し、利用可能なアップグレードをチェックし、構成設定に基づいて自動的にインストールします。

アップグレードには再起動が必要になったり、アプリケーションが再起動したりする可能性があるため、システムが使用されていないときにのみ自動アップグレードをスケジュールする必要があります。

無人アップグレードのログを確認する

Unattended-Upgrades パッケージは、デフォルトで、すべてのアップグレード アクティビティを syslog 機能に記録します。ログは、/var/log/syslog ファイルとその他のシステム ログに保存されます。

Unattended-Upgrades ログを確認するには、次のコマンドを使用できます。

sudo grep unattended-upgrades /var/log/syslog

このコマンドは、syslog ファイルで「unattended-upgrades」キーワードを含むエントリを検索し、画面に表示します。また、次のコマンドを使用して、syslog ファイルの最後の 50 エントリを表示することもできます。

sudo tail -n 50 /var/log/syslog | grep unattended-upgrades

このコマンドは、syslog ファイル内の「unattended-upgrades」キーワードを含む最後の 50 エントリを表示します。

上記のコマンドに加えて、さまざまな grep オプションを使用して、特定の基準に基づいてログをフィルタリングできます。たとえば、ログを日付と時刻でフィルタリングするには、次のコマンドを使用します。

sudo grep "unattended-upgrades.*YYYY-MM-DD" /var/log/syslog

「YYYY-MM-DD」を年月日形式の希望の日付に置き換えます。このコマンドは、「unattended-upgrades」キーワードを含み、指定された日付に一致するすべてのログ エントリを表示します。

次のコマンドを使用して、パッケージ名でログをフィルタリングすることもできます。

sudo grep "unattended-upgrades.*<package_name>" /var/log/syslog

交換する " ” を、検索するパッケージ名に置き換えます。このコマンドは、“unattended-upgrades” キーワードを含み、指定されたパッケージ名に一致するすべてのログ エントリを表示します。

上記のコマンドを使用すると、Ubuntu システムの Unattended-Upgrades ログを簡単に確認およびフィルタリングし、アップグレード プロセス中に発生する可能性のある問題をトラブルシューティングできます。

結論

結論として、Ubuntu システムで無人アップグレードを設定および構成すると、セキュリティと安定性が大幅に向上します。セキュリティ更新とパッチを自動的にインストールすることで、手動で更新を確認してインストールすることなく、システムが常に最新のセキュリティ修正プログラムで最新の状態になることを保証できます。

Joshua James

「How to Configure Unattended Upgrades on Ubuntu 24.04, 22.04 or 20.04」への3件のフィードバック

  1. 残念ながら、Ubuntu 24.04 LTS をインストールした後、解像度が 800 x 600 にリセットされてしまい、元に戻すことができません。

    返信
  2. こんにちは、この行にタイプミスがあります。enable に L がありません。ガイドをありがとうございます!

    起動時に無人サービスを有効にします。
    sudo systemctl enabe 無人アップグレード

    返信

コメントを残す