Fedoraのdnf update
Fedoraを使っていると、dnf update
した際にしょっちゅうパッケージの更新がある。
できるだけ新しいものがインストールされるように、なので、自動でアップデートが走るようにしてみた。
だいたいのことはここに書いてある。
やりたいこと
以下のことがやりたい。
- 自動でパッケージのアップデートが行われる
- アップデート後に、再起動が必要な場合再起動してくれる(ここはまだできていない)
やること
パッケージのインストール
dnf-automatic
を使う。Fedora22以降であればdnf
やyum
でインストールできるようだ。
手元のFedora 32では以下のコマンドでインストールした。
sudo dnf install dnf-automatic
設定の変更
/etc/dnf/automatic.conf
で設定ができる。
アップデート時のメールなどを飛ばしたりできる。
サービスの起動とその確認
以下でサービスの起動を行う。
enable
に --now
をつけておくと、サービスの起動自体もできる。
# systemctl enable --now dnf-automatic.timer
サービスの状態の確認は以下でできる。
# systemctl list-timers *dnf-*
ひとまず午前6時ぐらいに動くようになっている。
# systemctl list-timers *dnf-* NEXT LEFT LAST PASSED UNIT ACTIVATES Sat 2020-04-18 15:14:29 JST 23min left Sat 2020-04-18 14:14:29 JST 36min ago dnf-makecache.timer dnf-makecache.service Sun 2020-04-19 06:01:51 JST 15h left n/a n/a dnf-automatic.timer dnf-automatic.service 2 timers listed. Pass --all to see loaded but inactive timers, too.
時間を変更する
デフォルトだと、毎日6:00に実行されるようである。 また、これを変えたい場合には、以下のファイルを編集して再度サービスファイルを読み込ませたらよい。
# vi /usr/lib/systemd/system/dnf-automatic.timer # systemctl enable --now dnf-automatic.timer
ファイルの中身は以下のように16時からした。
[Unit] Description=dnf-automatic timer # See comment in dnf-makecache.service ConditionPathExists=!/run/ostree-booted Wants=network-online.target [Timer] OnCalendar=*-*-* 16:00 RandomizedDelaySec=60m Persistent=true [Install]WantedBy=timers.targe
再度サービスの状況を確認すると、ちゃんと時間を変更することができた。
NEXT LEFT LAST PASSED UNIT ACTIVATES Sat 2020-04-18 16:38:06 JST 2min 48s left n/a n/a dnf-automatic.timer dnf-automatic.service Sat 2020-04-18 17:18:30 JST 43min left Sat 2020-04-18 16:18:30 JST 16min ago dnf-makecache.timer dnf-makecache.service
再起動に対応する
ここはまだできていないが、いつか対応させたい