【ZORIN OS(Ubuntu)】aptの自動実行の設定

Debian系には自動でapt upgrade(パッケージ更新)を実行してくれる「unattended-upgrades」があるため、それの設定方法のメモ。
なんと自分でcrontabでスケジュールを作る必要がないのである。
Debian系なので当然Ubuntuがベースのものもすべて使えます。今回はZorinOS 17.3。

1./etc/apt/apt.conf.d配下の確認

unattended-upgradesはデフォルトで入っているため、/etc/apt/apt.conf.d配下に以下のファイルがあるかを念の為確認。

/etc/apt/apt.conf.d/10periodic
/etc/apt/apt.conf.d/20auto-upgrades
/etc/apt/apt.conf.d/50unattended-upgrades

デフォルトで入っているどころか、OS入れた時点から実は自動で動作もしているらしい。
以下、20auto-upgradesのファイルを見てみると・・・

$ cat /etc/apt/apt.conf.d/20auto-upgrades
APT::Periodic::Update-Package-Lists "1";
APT::Periodic::Unattended-Upgrade "1";

Unattended-Upgrade "1";
となっており、Unattended-Upgradeが有効になっていることを示しています。
※正確に言うと、「1」は毎日動くことを示すらしい?

2.自動アップデートの有効化

バックアップを取りつつ、標準パッケージの自動アップデートを有効します。

$ sudo cp -a /etc/apt/apt.conf.d/50unattended-upgrades /etc/apt/apt.conf.d/50unattended-upgrades.bak

$ sudo vi /etc/apt/apt.conf.d/50unattended-upgrades
// "${distro_id}:${distro_codename}-updates";

コメントアウトを削除
"${distro_id}:${distro_codename}-updates";

3.実行時間の変更

特に変更する必要はないですが、変更するのであれば、以下のファイルを変更します。

$ sudo vi /lib/systemd/system/apt-daily-upgrade.timer
[Unit]
Description=Daily apt upgrade and clean activities
After=apt-daily.timer

[Timer]
OnCalendar=*-*-* 6:00
RandomizedDelaySec=60m
Persistent=true

[Install]
WantedBy=timers.target


$ sudo vi /lib/systemd/system/apt-daily.timer

[Unit]
Description=Daily apt download activities

[Timer]
OnCalendar=*-*-* 6,18:00
RandomizedDelaySec=12h
Persistent=true

[Install]
WantedBy=timers.target

apt-daily-upgrade.timerはapt upgradeを18時に実行
apt-daily.timerはapt updateを6時と18時に実行
となる。

4.systemdで再起動

設定を反映させるため、systemdで再起動します。

$ sudo systemctl restart apt-daily.timer
$ sudo systemctl status apt-daily-upgrade.timer