あなたはUbuntuシステムを最高の状態に保つ方法を探していますか?運が良いですね!Ubuntuで自動アップグレードを保つ方法を学び、システムを定期的にアップグレードしましょう。
このチュートリアルでは、マシンで自動アップグレードを設定し、アップグレードするパッケージを完全に制御する方法を学びます。
お楽しみにし、自動アップグレードによってUbuntuシステムを最新の状態に保ちましょう!
要件
このチュートリアルでは、ハンズオンデモンストレーションが含まれています。このチュートリアルを完了するには、以下のものが必要です:
- Ubuntuシステム – このチュートリアルではUbuntu 20.04を使用しますが、Ubuntu Desktop、Ubuntu Server、またはKubuntuを含む任意のバージョンのUbuntuを使用することができます。
- A user account with sudo privileges.
Ubuntuでの自動アップグレードのインストール
最新のアップデートを確実に受け取る最も簡単な方法の1つは、自動アップグレードを使用することです。このチュートリアルでは、aptパッケージマネージャを使用してマシンに自動アップグレードをインストールします。
1. ターミナルを開き、次の apt update コマンドを実行してシステムのパッケージインデックスを更新します。

2. 次に、以下の apt install コマンドを実行して、unattended-upgrades パッケージをインストールします。

3. インストールが完了したら、以下の systemctl コマンドを実行して、unattended-upgrades サービスの systemd ユニットを起動および有効化します。このコマンドにより、サービスが自動的に起動し、再起動後も持続します。
4. 最後に、以下のコマンドを実行して、unattended-upgrades サービスユニットの状態を確認し、正しく実行されていることを確認します。

自動アップグレードの設定
自動アップグレードを設定すると、マシンの自動更新が正常に機能するはずです。ただし、常に更新を受け取りたくないパッケージがある場合はどうすればよいでしょうか?自動アップグレードの設定で解決できます。
自動アップグレードを設定するには、好きなテキストエディタで設定ファイル(/etc/apt/apt.conf.d/50unattended-upgrades)を開きます。
以下のような設定が表示されます。各オプションの前にある//記号は、オプションがコメントアウトされていることを示しており、自動アップグレードサービスはこれを無視します。

続けて、どのパッケージが常にアップデートされるかを完全に制御する方法を見てみましょう。
特定のパッケージを無視する
後でアップグレードするために特定のパッケージを無視したい場合、自動アップグレードの設定ファイルでは特定のパッケージを無視することができます。
Unattended-Upgrade::Package-Blacklistセクションまでスクロールし、無視したいパッケージの名前をそれぞれの行に追加します。
たとえば、Apacheパッケージを無視するためにapache2を追加します。

追加リポジトリの有効化
自動アップグレードでは、デフォルトで公式のUbuntuリポジトリとセキュリティリポジトリのみが有効になっていますが、他のリポジトリもアップグレードプロセスに含めることができます。
Unattended-Upgrade::Allowed-Originsセクションまでスクロールします。

次に、有効にしたいリポジトリの前の//記号を削除します。
このチュートリアルでは、Ubuntuのすべてのリポジトリが有効になります。
- アップデート – 安定したパッケージのリリースのため。
- 提案 – 新しい安定したパッケージのバージョンのテストのため。
- バックポート – 既存の安定したパッケージの新しいバージョンのため。

システムの自動再起動
アップグレード成功後にシステムを自動的に再起動しますか?なぜ再起動しないのですか?これにより、システムが常に最新の状態に保たれます。ただし、アップグレードが発生するときにシステムを使用中である場合、この機能は中断を引き起こす可能性があります。
自動再起動を有効にするには、Unattended-Upgrade::Automatic-Rebootの行までスクロールし、//記号を削除し、値がtrueに設定されていることを確認してください。

未使用の依存関係の削除
インストールされた依存関係は、ストレージスペースを消費するだけです。なぜそれらを削除しないのですか?この設定では、未使用の依存関係がアップグレード成功後に自動的に削除されるかどうかを設定できます。
この機能はシステムを清潔に保つのに役立ちますが、アップグレードされたパッケージによってはまだ必要なパッケージも削除される可能性があります。
未使用の依存関係の削除を有効にするには、Unattended-Upgrade::Remove-Unused-Dependenciesの行を見つけ、//記号を削除し、値をtrueに設定してください。

詳細なログの有効化
アップグレードが失敗した場合、原因を知るにはどうすればよいですか?詳細なログは、自動的なアップグレードプロセスについての詳細情報を得るための素晴らしい方法です。
この機能は、失敗したアップグレードのトラブルシューティングや、裏側で何が起こっているかをより詳しく知りたい場合に役立ちます。
詳細なログを有効にするには、Verbose Loggingの行までスクロールし、//シンボルを削除し、値をtrueに設定します。変更したら、ファイルを保存して閉じます。変更が有効になります。

自動アップデートを有効にする
この時点で、ニーズに合わせて自動アップグレードを設定する方法を理解しているはずです。ただし、自動アップデートを実行するタイミングをシステムに伝えるためのファイルが必要です。このファイルの名前は20auto-upgradesであり、/etc/apt/apt.conf.dディレクトリに配置する必要があります。
/etc/apt/apt.conf.dディレクトリでファイルを管理または作成するには、sudo権限が必要です。
自動アップデートを有効にするには:
1. 好みのテキストエディタで/etc/apt/apt.conf.d/ディレクトリに20auto-upgradesという名前のファイルを作成します。
2. 次に、以下の設定オプションを20auto-upgradesファイルに追加し、変更を保存してファイルを閉じます。
この設定は、自動更新を開始するための最低限のものであり、次のような意味があります:
- 最初の行は、システムに利用可能なパッケージのリストを毎日更新するように指示しています。このオプションは、システムが利用可能なアップデートを知るために必要です。
- 2行目は、システムに対して毎日unattended-upgradesを実行するように指示しています。このオプションは、アップグレードプロセスを実行します。
- 3行目は、システムに対して古いまたは使用されていないファイルを自動的にクリーンアップするように指示しています。
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";
APT::Periodic::AutocleanInterval "7";
3. 最後に、以下のコマンドを実行してunattended-upgradesサービスを再起動し、変更を適用します。
このコマンドは出力を提供しませんが、次のセクションのすべての構成をテストします。
自動アップグレードの構成のテスト
すべての構成が正常に設定されましたが、すべての構成が正常に動作しているかどうかをどのように確認しますか?定期的なアップデートは1日に1回行われるため、長く待つ必要はありません。
ただし、自動アップグレードの構成をテストする最も迅速な方法は、未承認のアップグレードプロセスのドライランを実行することです。
以下のunattended-upgradeコマンドを実行して、実際のインストールは行わずにすべてのアップグレードのドライランを実施してください(–debug)。
比較的長い出力が表示されますが、最初に以下のような出力が表示されます。
見ての通り、apache2パッケージはブラックリストに入っており、これはパッケージのアップグレードをブラックリスト化する構成が機能していることを示しています。

次に、出力をスクロールして、以下のようなセクションを見つけます。これはいくつかのパッケージの利用可能なアップデートを示しています。ただし、ドライランを実施したため、アップデートはダウンロードされますがインストールされません。

自動アップグレードのログの表示
構成が正常に動作することを確認したら、最近のアップグレード時に何が起こったかを確認することができます。unattended-upgradesのログは、/var/log/unattended-upgradesファイルに保存されており、表示することができます。
以下のgrepコマンドを実行して、単語文字(^\w)で始まるログのみを表示し、空行とダッシュだけの行をフィルタリングします。
以下に、ログ情報が表示されます:
- 最後に実行されたunattended-upgradesの日時。
- アップグレードされたパッケージの一覧。
- プロセスの開始時と終了時。

結論
サーバーを最新の状態に保つことは、セキュリティを維持するために重要な要素です。このチュートリアルでは、Ubuntuに自動アップグレードをインストールおよび設定する方法を学びました。また、設定をテストし、ログを表示して、自動アップデートが最後に実行された際に何が起こったかを確認しました。
この時点で、どのパッケージが自動アップグレードを受け取るかを完全に制御できます。しかし、ここで止まらないでください!自動アップグレードにはさまざまなunattended-upgradeの設定オプションがさらにあります。
Source:
https://adamtheautomator.com/automatic-upgrades-in-ubuntu/