Debian 12/11/10 Linux で無人アップグレードを構成する方法

Debian は、Linux ベースのオペレーティング システムの中で、その堅牢性と包括的なソフトウェア ライブラリで際立っています。Debian 12 Bookworm または Debian 11 Bullseye や Debian 10 Buster の古い安定リリースで無人アップグレードを構成したいユーザーにとって、無人アップグレード パッケージは合理化されたソリューションを提供します。このユーティリティは、更新プロセスを自動化することで、更新された安全なシステムの維持を簡素化します。

無人アップグレードパッケージの主な利点:

  • シームレスな自動化: このパッケージは、セキュリティとソフトウェアの更新を自動的に取得してインストールするように設計されており、手動で監視する必要がありません。
  • 強化されたセキュリティ: このパッケージは、最新のセキュリティ パッチをタイムリーにインストールすることで、潜在的な脅威や脆弱性からシステムを強化します。
  • カスタマイズされたアップデート: ユーザーは更新するパッケージと除外するパッケージを指定できるため、カスタマイズされた更新エクスペリエンスを実現できます。
  • 透明性: すべての更新アクティビティは綿密に記録され、インストール後にユーザーに通知が届くため、システムの変更について常に最新情報を把握できます。

無人アップグレード パッケージの機能を活用することで、Debian システムの安全性と最新性が確保され、パフォーマンスと信頼性が最適化されます。

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

ステップ1: Debianシステムパッケージを更新する

無人アップグレード パッケージをインストールして設定する前に、競合を防ぐために Debian システムを更新してください。Debian システムを更新するには、ターミナルを開いて次のコマンドを入力します。

sudo apt update && sudo apt upgrade

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

ステップ2: 無人アップグレードパッケージをインストールする

Debian システムに無人アップグレード パッケージをインストールするには、ターミナルを開いて次のコマンドを入力する必要があります。

sudo apt install unattended-upgrades

このコマンドは、パッケージとそのすべての依存関係をシステムにインストールします。

注記: パッケージはデフォルトですでにインストールされているはずですが、削除した場合は上記のコマンドを使用して再インストールできます。

ステップ3: 無人アップグレード用の追加パッケージをインストールする

システムの再起動が必要なアップグレード後に Debian システムを自動的に再起動したい場合は、apt-config-auto-update パッケージをインストールする必要があります。インストールするには、以下のコマンドを実行します。

sudo apt install apt-config-auto-update

ラップトップ ユーザーは、バッテリー設定に関連する無人オプションを活用するために、powermgmt-base パッケージをインストールする必要があります。このパッケージを取得するには、ターミナルを起動して次のコマンドを入力します。

sudo apt install powermgmt-base

パッケージをインストールしたら、好みに合わせて設定します。たとえば、どの更新を自動的に適用するか、どの更新をバイパスするか、インストールのタイミングなどを決めることができます。無人アップグレードパッケージにはルートアクセスが必要であることに注意してください。したがって、このガイドで強調表示されているコマンドの前には必ず sudo.

ステップ4: 無人アップグレードのインストールを確認する

無人アップグレード パッケージが正しく動作するか確認することをお勧めします。ターミナルを開いて、次のコマンドを入力します。

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

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

無人アップグレードのステータスを確認するには、次のコマンドを入力します。

systemctl status unattended-upgrades

ステップ 5: 無人アップグレードの Systemd コマンドを理解する

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

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

sudo systemctl start unattended-upgrades

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

sudo systemctl stop unattended-upgrades

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

sudo systemctl enabe unattended-upgrades

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

sudo systemctl disable unattended-upgrades

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

sudo systemctl restart unattended-upgrades

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

このセクションでは、ターミナル コマンドを使用して、構成ファイルで無人アップグレード パッケージ設定を構成する手順を説明します。これらの設定は、必要に応じてカスタマイズできます。各セットの詳細を詳しく説明して、その目的と機能を理解し、Debian システムで無人アップグレード パッケージを適切に調整できるようにします。

ステップ 1: 無人アップグレードの CLI オプションを理解する

構成ファイルに取り組む前に、無人アップグレード パッケージで使用できるすべての CLI オプションを確認して説明しましょう。

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

ターミナルで unattended-upgrades コマンドを実行する場合、これらのオプションが重要な役割を果たします。さまざまなオプションを使用して、自動アップグレード プロセスを柔軟に制御できます。たとえば、–dry-run オプションを使用すると、リアルタイムのシステム変更を行わずにアップグレード プロセスをテストできます。同様に、–download-only オプションを使用すると、アップグレードをインストールせずにダウンロードできます。

デフォルトでは、無人アップグレードは –minimal-upgrade-steps オプションを使用します。一方、–no-minimal-upgrade-steps オプションは、小さなバッチではなく、すべてのパッケージを一度にアップグレードします。無人アップグレードを構成するときにこれらのオプションを理解することは、プロセスが好みやニーズに一致するようにするために不可欠です。

ステップ2: 無人アップグレード構成ファイルの設定

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

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

開いたら、必要に応じてさまざまなオプションを変更できます。コメント(で始まる行)は必ず削除してください。 "//" or "#") を追加してオプションを有効にします。

設定ファイルに変更を加えた後は、変更を適用するために次のコマンドを実行する必要があります。

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

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

sudo unattended-upgrades

構成ファイルで変更できるオプションはいくつかあります。次に例をいくつか示します。

許可されたオリジン

デフォルトでは、無人アップグレード パッケージは、セキュリティ リポジトリと更新リポジトリからの更新のみを許可します。構成ファイルでこのオプションのコメントを解除し、必要なソースを指定することで、他のリポジトリを追加できます。以下に例を示します。

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「自動」

このオプションを使用して、システムを開発リリースに自動的にアップグレードするかどうかを決定します。デフォルトでは、システムはこのオプションを有効にしません。開発リリースへの自動アップグレードをトリガーするには、次の例に示すように、値を「自動」に変更します。

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";

ダウングレードを有効にするとリスクが生じ、システムが不安定になったり、セキュリティ上の脆弱性が露呈したりする可能性があることに注意してください。このオプションは必要な場合にのみ使用し、潜在的なリスクを徹底的に評価することをお勧めします。

Cronジョブで自動アップグレードをスケジュールする

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

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

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

sudo crontab -e

ファイルを開いたら、一番下に次の行を追加します。

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

上記の行を追加すると、unattended-upgradeコマンドが毎日深夜に実行されます。 (0 0 * * *)ファイルを保存して終了するには、 「Ctrl+X」、 それから "そして"、 その後 "入力".

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

無人アップグレードログの監査

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

Unattended-Upgrades のログを表示するには、次のコマンドを使用します。

sudo grep unattended-upgrades /var/log/syslog

Unattended-Upgrades に関連する syslog ファイルの最後の 50 エントリを表示するには、次のコマンドを使用します。

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

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

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

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

パッケージ名でログをフィルタリングするには、次のコマンドを使用し、「package_name」をパッケージ名に置き換えます。

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

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

上記のコマンドを使用すると、Debian システムの Unattended-Upgrades ログをすばやく確認およびフィルタリングできるため、アップグレード プロセス中に発生する可能性のある問題を特定して対処できます。

結論

Debian Linux で無人アップグレードを設定することは、システムを最新かつ安全な状態に保つための貴重な方法です。プロセスを自動化することで、重要なセキュリティ パッチやバグ修正を見逃すリスクを最小限に抑えることができます。全体として、無人アップグレードは Debian Linux システムの安定性、セキュリティ、パフォーマンスを維持するのに役立ち、管理者とユーザーの両方にとって不可欠なツールとなります。

ジョシュア・ジェームズ
私に従ってください
Joshua James による最新の投稿 (すべてを見る)