Debian 12→13(Trixie)へのアップグレード手順と注意点

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のメジャーバージョンが上がる場合はアプリの動作確認を忘れずに

インプレースアップグレードは無事に完了した。体感的なパフォーマンス変化は今のところ感じていないが、引き続き様子を見る。

読んで頂いて有り難うございます!