DietPi を Debian Stretch から Bullseye ベースにアップデートする備忘録です.
DietPi v7.9.4 (stretch) から 8系列にアップデートするためには DietPi を Stretch から少なくとも Buster ベース(Bullseye のひとつ前.DietPi は Debian GNU Linux を基本システムとして採用している) にしないといけませんし,Stretch のサポート期限は2020年7月6日なので,セキュリティ的な意味でもそろそろアップデートが必要です.
と言うことで,Bullseye へのアップデートについて記している本家のサイトは以下の通り.
ざっと上から確認すると,当たり前ですが,推奨はクリーンインストールし直すことだそうで,アップデートは設定変更した部分が多くて,さらにセットアップ記録も残していない場合に限るべきだそう.また,Stretch から直接 Bullseye にアップデートはできず,まずは Buster にアップデートしないといけないそう.
私の場合遠隔地に設置しているので,クリーンインストールという訳にはいきません.と言うことで,本家の手順に沿って実際にアップデートを試みてみました.
まず,Buster にアップデートするために,以下を1行ずつ実行していきます(PHPをインストールしている場合は追加の設定が必要です.詳しくは本家サイトをご覧ください).
# sudo bash # dietpi-backup 1 # sed -i 's/stretch/buster/g' /etc/apt/sources.list{,.d/*.list} # rm -f /etc/apt/sources.list.d/dietpi-php.list # rm -f /etc/apt/trusted.gpg.d/dietpi-php.gpg # rm -f /etc/apt/preferences.d/dietpi-{php,openssl,xrdp} # rm -f /etc/mysql/mariadb.conf.d/97-dietpi.cnf #/boot/dietpi/func/dietpi-set_software apt-cache clean # apt update # apt upgrade # apt full-upgrade # apt autopurge # /boot/dietpi/func/dietpi-obtain_hw_model # . /boot/dietpi/func/dietpi-globals
apt upgrade すると約250のパッケージがアップデートされます.当然かなりの時間(Raspberry pi 2B で1時間以上)かかりました.
アップデート後に再起動し,きちんと Buster にアップデートできていることを以下のコマンドで確認します.
$ echo $G_DISTRO_NAME buster
無事,確認できましたので,次は Buster から Bullseye にアップデートするため,Buster にアップデートしたのと同様な手順(全く同じじゃない)を実行します(Raspberry pi の手順です.Odroid XU4 などを使っている場合は一部違います).
# sudo bash # dietpi-backup 1 # apt update # apt install --reinstall librtmp1 # sed -i 's/buster/bullseye/g' /etc/apt/sources.list{,.d/*.list} # sed -i 's|bullseye/updates|bullseye-security|' /etc/apt/sources.list # [[ -f '/etc/apt/sources.list.d/raspi.list' ]] && sed -i 's/ ui$//' /etc/apt/sources.list.d/raspi.list # rm -f /etc/apt/sources.list.d/dietpi-{php,wireguard}.list # rm -f /etc/apt/trusted.gpg.d/dietpi-php.gpg # rm -f /etc/apt/preferences.d/dietpi-{php,openssl,xrdp,wireguard,kodi} # rm -f /etc/apt/sources.list.d/pivpn-bullseye.list # rm -f /etc/apt/sources.list.d/pivpn-bullseye-repo.list # rm -f /etc/apt/preferences.d/pivpn-limit-bullseye # apt update # [[ -f '/etc/proftpd/proftpd.conf' ]] && ! grep -q 'IfModule mod_ident.c' /etc/proftpd/proftpd.conf && sed -i '/IdentLookups/c\<IfModule mod_ident.c>\nIdentLookups off\n</IfModule>' /etc/proftpd/proftpd.conf # (( $G_HW_MODEL < 10 )) && ! grep -q 'net.ifnames=0' /boot/cmdline.txt && sed -i '/root=/s/$/ net.ifnames=0/' /boot/cmdline.txt # dietpi-services stop # apt upgrade # apt full-upgrade # apt autoremove
apt upgrade するとまたもや約250のパッケージがアップデートされました.
再起動後,再びきちんとアップデートできていることを確認します.
# cat /etc/os-release PRETTY_NAME="Raspbian GNU/Linux 11 (bullseye)" NAME="Raspbian GNU/Linux" VERSION_ID="11" VERSION="11 (bullseye)" VERSION_CODENAME=bullseye ID=raspbian ID_LIKE=debian HOME_URL="http://www.raspbian.org/" SUPPORT_URL="http://www.raspbian.org/RaspbianForums" BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"
これで Bullseye にアップデートできた訳ですが,なぜか私の Raspberry pi 2B だと DietPi の8系列にはなってくれませんでした.いろいろ調べた結果,/boot/dietpi.txt の DEV_GITBRANCH が stretch になっていたので,これを以下のように変更することで無事v8.0.2 にすることができました.
$ sudo vi /etc/boot/dietpi.txt #------------------------------------------------------------------------------------------------------ # D I E T - P I # Dev settings #------------------------------------------------------------------------------------------------------ DEV_GITBRANCH=master $ sudo dietpi-update
ver 8 系列にするだけなら Buster にアップデートするだけでも良かったのですが,Bullseye だと2026年までサポートされますし,遠隔地に置いてあってなかなか行こうと思っても行けないので出来る時に出来るだけアップデートしたと言うことですね.
以上!