alfort's Blog

Linuxエンジニアのメモ

Fedoraのかんたんなアップデート

背景

Fedoraを使っていると半年に1回程度はアップグレードされるので追従するのが非常に大変である。

以前以下のような記事を書いたものの、ここを見ながらOSのアップグレードを行うのが煩わしいなと思ってしまった。

alfort728.hatenablog.com

今回はこのアップグレードを簡単に行うようにスクリプトを作ってみた。

何をすればいいのか

本来やらなければならないこと

結局の所以下を実行さえすれば良い。

29に相当するものは現在インストールされているFedora のバージョン+1を指定する必要がある。

$ sudo dnf upgrade --refresh
$ sudo dnf install dnf-plugin-system-upgrade
$ sudo dnf system-upgrade download --refresh --releasever=29
$ sudo dnf system-upgrade reboot

dnf コマンドの-yオプション

dnfコマンドの-yオプションを使えば、dnfコマンドを使っているときに聞かれるy/Nのような選択がすべてyesを 選択したものとして処理を継続してくれる。

Fedoraの現在のバージョンを取得する方法

/etc/os-releaseファイルを見ればわかる。

ファイルは以下のようになっている。

~ ❯❯❯ cat /etc/os-release
NAME=Fedora
VERSION="32 (Thirty Two)"
ID=fedora
VERSION_ID=32
VERSION_CODENAME=""
PLATFORM_ID="platform:f32"
PRETTY_NAME="Fedora 32 (Thirty Two)"
ANSI_COLOR="0;34"
LOGO=fedora-logo-icon
CPE_NAME="cpe:/o:fedoraproject:fedora:32"
HOME_URL="https://fedoraproject.org/"
DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f32/system-administrators-guide/"
SUPPORT_URL="https://fedoraproject.org/wiki/Communicating_and_getting_help"
BUG_REPORT_URL="https://bugzilla.redhat.com/"
REDHAT_BUGZILLA_PRODUCT="Fedora"
REDHAT_BUGZILLA_PRODUCT_VERSION=32
REDHAT_SUPPORT_PRODUCT="Fedora"
REDHAT_SUPPORT_PRODUCT_VERSION=32
PRIVACY_POLICY_URL="https://fedoraproject.org/wiki/Legal:PrivacyPolicy"

ということで、VERSION_IDの行からsedなどで数値のみを切り出し、アップグレードを行うスクリプトを以下に作成した。

github.com