Debian 12(Bookworm)のサポート期間は2028年まで。ただしDebian 13(Trixie)が2025年後半にリリース予定となったため、早めに移行を試みた。インプレースアップグレードの手順と、実際に踏んだ注意点をまとめる。
前提確認
cat /etc/debian_version
# 12.x と表示されていることを確認
uname -r
# カーネルバージョン確認
df -h
# /boot と / に十分な空きがあること(/boot は500MB以上推奨)
アップグレード前にスナップショットを取っておくのが安全。さくらのVPSはコントロールパネルからスナップショットが取れる。
sources.listを書き換える
# バックアップ
cp /etc/apt/sources.list /etc/apt/sources.list.bak
# bookworm → trixie に置換
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list
# /etc/apt/sources.list.d/ 配下も同様に書き換える
sed -i 's/bookworm/trixie/g' /etc/apt/sources.list.d/*.list 2>/dev/null
サードパーティのリポジトリ(ondrej/phpなど)はtrixie対応していない場合があるので、その行はコメントアウトしておく。
アップグレード実行
# パッケージリストを更新
apt update
# 最小アップグレード(依存関係の衝突を事前に解消)
apt upgrade
# フルアップグレード
apt full-upgrade
# 不要パッケージの削除
apt autoremove --purge
full-upgrade は時間がかかる(環境にもよるが30分〜1時間程度)。SSH接続が切れると困るのでtmuxかscreenの中で実行する。
apt install tmux
tmux new -s upgrade
よくあるエラーと対処
設定ファイルの上書き確認
アップグレード中に「設定ファイルが変更されています。どうしますか?」という対話プロンプトが出ることがある。基本的には N(既存設定を保持)で問題ないが、nginx.confなど重要な設定ファイルは事前にバックアップを取っておく。
サードパーティリポジトリの署名エラー
ondrej/phpなどのPPAがtrixie未対応だとGPG署名エラーが出る。該当リポジトリをコメントアウトしてアップグレード完了後に再対応する。
サービス起動失敗
アップグレード後にnginxやphp-fpmが起動しない場合、設定ファイルの文法エラーかライブラリの非互換が多い。
nginx -t
php-fpm8.3 -t
アップグレード確認
cat /etc/debian_version
# 13.x と表示されれば成功
lsb_release -a
# Codename: trixie になっていること
注意点まとめ
- スナップショット必須。失敗した時の退路を確保する
- tmux/screenの中で実行する(SSH切断対策)
- サードパーティリポジトリは事前にコメントアウト
- 本番サーバーではステージング環境で先に試す
- PHPのメジャーバージョンが上がる場合はアプリの動作確認を忘れずに
インプレースアップグレードは無事に完了した。体感的なパフォーマンス変化は今のところ感じていないが、引き続き様子を見る。
