概要
この記事では、Linux システムで apt
の自動アップデートの仕組みについて解説し、自動アップデートを設定、またはすでに有効になっている自動アップデートを停止する方法について説明します。
手順
1. unattended-upgrades
パッケージのインストール
まず、自動アップデートを管理するためのパッケージ unattended-upgrades
をインストールします。
2. 自動アップデートを有効化
unattended-upgrades
パッケージのインストールが完了したら、自動アップデートを有効にする必要があります。
dpkg-reconfigure
コマンドを使用して設定を行います。
このコマンドを実行すると、対話形式の設定画面が表示されるので、「yes」を選択して自動アップデートを有効にします。
自動アップデートの対象パッケージを設定
自動アップデートの対象パッケージを設定するには、/etc/apt/apt.conf.d/50unattended-upgrades
を編集します。
まず、レポジトリリストを確認します。
Unattended-Upgrade::Origins-Pattern で指定する
Unattended-Upgrade::Allowed-Origins で指定する
distro_id
および distro_codename
はそれぞれ以下に置換されます。
- distro_id: ディストリビューションの名前 (例:
Ubuntu
) - distro_codename: ディストリビューションのコードネーム (例:
focal
)
例えば、"${distro_id}:${distro_codename}-security"
の場合、apt-cache policy
で確認したリストのうち、
o=Ubuntu,a=facal-security
のレポジトリのパッケージが更新対象となります。
Unattended-Upgrade::Package-Blacklist で指定する
特定のパッケージを対象外としたい場合、Unattended-Upgrade::Package-Blacklist
で指定します。
Python の正規表現が使用できます。
実際に動作させる前に設定の挙動を確認したい場合は以下のコマンドを実行します。
自動アップデートのスケジュールを設定
自動アップデートのスケジュールを設定するには、/etc/apt/apt.conf.d/20auto-upgrades
ファイルを編集します。
- APT::Periodic::Update-Package-Lists: パッケージリストを更新する間隔 (日)
- APT::Periodic::Unattended-Upgrade: パッケージを更新する間隔 (日)
上記の設定では、毎日パッケージリストおよびパッケージを更新します。
apt
の自動更新を無効にする
/etc/apt/apt.conf.d/20auto-upgrades
の更新間隔を 0 に設定すると、自動更新が無効になります。
その他の設定
/etc/apt/apt.conf.d/50unattended-upgrades
で設定可能な上記以外の設定について記載します。
ログの確認
自動アップデートの結果を確認するために、/var/log/unattended-upgrades/
ディレクトリのログを確認します。
コメント