
Debian 11 bullseye がリリースされてたのでサーバの Debian をアップグレードしました。
1. アップグレードの下準備
1.1. 稼働中のDebianのバージョン確認
以下のコマンドで現在動いている Debian のバージョンを確認できます。
$ cat /etc/debian_version
10.10
もしくはこっちでも確認できます。
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 10 (buster)
Release: 10
Codename: buster
1.2. 稼働中のDebianのアップグレード
現在動いている Debian を最新の状態にアップグレードしておきます。
# apt update
# apt upgrade
# apt dist-upgrade
apt update
すると最後のほうにこんなメッセージ出るかもですが、これは Debian 11 bullseye のリリースに伴い、10 buster が stable ブランチから oldstable になったというお知らせです。
N: Repository 'http://security.debian.org/debian-security buster/updates InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
N: Repository 'http://ftp.jp.debian.org/debian buster InRelease' changed its 'Suite' value from 'stable' to 'oldstable'
過去のアップグレードなどで生じた不要な設定ファイルを削除しておきます。以下のコマンドを実行するとデフォルトの設定ファイルをリストしてくれます。
# find /etc -name '.dpkg-' -o -name '.ucf-' -o -name '*.merge-error'
2. アップグレード
2.1. sources.list の書き換え
/etc/apt/sources.list を開いて buster を bullseye に書き換えます。
ただし、security の記述方法が変わっています。これまでは buster/updates
という書き方でしたが、11からは bullseye-security
になっています。
変更前は以下のような感じ。
deb http://ftp.jp.debian.org/debian/ buster main
deb-src http://ftp.jp.debian.org/debian/ buster main
#deb http://ftp.jp.debian.org/debian/ buster-updates main
#deb-src http://ftp.jp.debian.org/debian/ buster-updates main
deb http://security.debian.org/ buster/updates main
deb-src http://security.debian.org/ buster/updates main
変更後は以下の通り。
deb http://ftp.jp.debian.org/debian/ bullseye main
deb-src http://ftp.jp.debian.org/debian/ bullseye main
#deb http://ftp.jp.debian.org/debian/ bullseye-updates main
#deb-src http://ftp.jp.debian.org/debian/ bullseye-updates main
deb http://security.debian.org/ bullseye-security main
deb-src http://security.debian.org/ bullseye-security main
うちでは枯れた環境、かつ、できるだけデフォルトのままでの安定運用を心がけているので main だけ。bullseye-updates もコメントアウトしちゃってます。
2.2. アップグレード作業
以下の順でコマンドを実行します。
# apt update
# apt upgrade --without-new-pkgs
# apt full-upgrade
失うものが少なければ apt upgrade --without-new-pkgs
は飛ばして full-upgrade
に行っても大丈夫。らしい。
2.3. アプデの確認
アップグレードされたことを確認します。
$ cat /etc/debian_version
11.0
3. おまけ
3.1. PHP7.4とMariaDBのインストール
アップグレードによって php7.3 と mariadb10.3 がアンインストールされるので、新たに php7.4 と mariadb 10.5 をインストールします。(でも php7.4-cli, php7.4-common, php7.4-json, php7.4-opcache, php7.4-readline, php7.4-phpdbg は最初からインストールされていた。)
WordPressを使うならこのあたりをインストールしておけば大丈夫だと思います。
# apt install mariadb-server php-curl php-fpm php-gd php-mbstring php-mysql php-xml php-zip
php7.3 と mariadb10.3 の設定ファイルはまだ残っているので、必要に応じて新しいほうにコピーしたり差分を取って修正したりします。
3.2. php-fpmの設定見直し
アプデついでにphp-fpmの設定を見直し。
pm
を dynamic
から static
に変更し、pm.max_children
の数をサーバのCPUコア数と同じ 2 にしました。コア数以上にしてもあんまパフォーマンス変わんなくね? という話を見たので。
pm.max_requests
は 1日のPV / コア数 にしてだいたい1日に1回再起動されるようにしました。
pm = static
pm.max_children = 2
pm.max_requests = 1000
3.3. SSHの設定ファイルの構成見直し
アプデしたら sshd_conf.d
というディレクトリが現れました(いままで気付いてなかった可能性も)。このディレクトリに設定を入れておくと読み込んでくれます。つまり、このディレクトリに設定を吐き出しておけば、アプデされるたびに ssh_config.conf
を修正する必要がなくなります。
さしあたってポート番号を設定するファイル port.conf
を作って放り込んでおきました。
Port 123456
4. 後始末
必要に応じて rc(設定ファイルが残ってる)状態のパッケージを完全に削除します。
rc状態のパッケージは以下のコマンドで確認できます。
# dpkg -l | awk '/^rc/ { print $2 }'
完全に削除するには以下のコマンドを実行します。
# apt purge $(dpkg -l | awk '/^rc/ { print $2 }')
完全削除に伴って生じる依存関係がなくなったパッケージを apt autoremove
で削除します。
# apt autoremove
以上でアプデ作業は完了です。
参考
- 第4章 Debian 10 (buster) からのアップグレード
- How To Upgrade To Debian 11 Bullseye From Debian 10 Buster – OSTechNix
- /etc/apt/sources.list(パッケージのダウンロード元設定ファイル・Debian)
- メーカー:Independently published
- カテゴリ:ペーパーバック