delete from hateblo.jp where 1=1;

タイトルに意味はありません。

squeeze(6.0.x)からwheezy(7.0)へのバージョンアップでハマったこと

対象

  • debian squeeze 利用者
  • open: 70123; closed: 10; defer: 171; conflict: 436とか永遠に出力される

注意

アップグレードを始める前に、システムのサービスが突然停止することをあらかじめ利用者に通知する必要があります。
パッケージ自体が古く、バージョンアップ後削除されることがあるため、事前に必要(重要)なパッケージが削除されないか Debian 6.0 (squeeze) からのアップグレード および 第5章 stretch で注意すべき点 で確認することを強く推奨します。(いずれもamd64)
horde3系がターゲットみたいでwebmail(imp)とか使っている場合は注意が必要。
なお、それぞれのアーキテクチャ(x86,amd64等)ごとにリリースノートおよびアップグレード手順・注意点が異なります。
対象のアーキテクチャの文章を必ず読むほうがいいです。(新機能についてのメモなどもあり、有用です)
付録A アップグレードの前に jessie システムを調整するについても目を通すべきです。

参考: x86,amd64版でのアップグレードリリースノートの相違点(x86のみ)
4.4.4. カーネルのフレーバー選択について
Debian の 686 カーネルは PAE (「Physical Address Extension、物理アドレス拡張」) を使う 686-pae に置き換えられました。現在、あなたのコンピューターが 686 で動作しているが PAE を持たない場合、代わりに 486 に変更する必要があるでしょう。コンピューターが PAE を持っているかを確認するには、以下を実行します:

$ grep -q '^flags.*\bpae\b' /proc/cpuinfo && echo yes || echo no

もしサポートしていない場合 (つまり上記のコマンドの実行結果が no)、linux-image-486 をインストールし、もし linux-image-686 とlinux-image-2.6-686 が現在インストールされている場合は削除する必要があります。
参考: x86,amd64版でのアップグレードリリースノートの相違点(amd64のみ)
4.5.2. ia32-libs から multiarch への移行

Debian 7.0 は multiarch 機能を備えました。これは同一システム上で異なったアーキテクチャからパッケージをインストールできるようにするものです。ia32-libs パッケージは、この新機能を使えるようにするための移行パッケージとなります。ia32-libs をインストールしてある場合、このパッケージをアップグレードする前に multiarch を有効にしておく必要があります。有効にしていない場合、APT は以下のメッセージを出力します:

以下のパッケージには満たせない依存関係があります:
 ia32-libs : 依存:ia32-libs-i386 しかし、インストールすることができません
エラー: 壊れたパッケージ

amd64 システム上で i386 パッケージのインストールを許可するには、以下のコマンドを実行します:

# dpkg --add-architecture i386
# apt-get update

はまりどろこの原因

apt-getではなく、aptitudeを使っていた。
マニュアルのとおりに使っていれば問題ない事象です。

$ sudo apt-get upgrade

コマンド

今後の自分のために使ったコマンドをメモ。(無保証の情報です、リリースノート(amd64,i386,armel,powerpc,sparc,kfreebsd-gnu,ia64,mips,s390) は必ず読みましょう)

既存のバージョンで最新にしておく
sudo aptitude update
sudo aptitude upgrade
何も出力されないことを確認する
sudo dpkg --audit
sudo aptitude search "~ahold" 
grep "proposed-updates" /etc/apt/sources.list
キレイキレイ
sudo apt-get clean
sudo apt-get autoremove
空き容量の確認

最低2G、推奨5Gぐらいあいていることを確認する。

df -h
squeeze → wheezyに機械置換する、また、stable以外(testing等)がないことを確認する
cd /etc/apt/
sudo cp sources.list sources.list.squeeze
sudo vi sources.list
ソースリストの取得
sudo apt-get update
前段インストール
  • libc6が更新されているため、mysql,postgresqlなどのサービスの再起動がかかります。通常はサービス停止期間中にこの操作を実施すべきでしょう。
  • 仮想マシンで、2時間ぐらいかかりました。
  • 途中で質問などが来るので、中断が発生します。
  • sudoersの更新があります。Yを選択する場合、追加した情報は確実に消えます。root権限でログインできることを確認しておいてください(or Yを選択する直前に本来禁止されているはずの方法としては別ターミナルでsudo su -をしておく)。なお、Nを洗濯することも可能のようです。Nを選択すると後でインストールとなります(未検証)
sudo apt-get upgrade
後段インストール
  • パッケージの削除が伴います
  • (Xあり、web server構成で)1GBytes近くのパッケージダウンロードがあるため、帯域によっては時間がかかります。
  • 前段インストールでsudoersがデフォルトに戻っていることがあるので、root権限で修正を行います。
sudo apt-get dist-upgrade

以後のステップについては確認中であるため、特筆すべきポイントがあれば自分のために記載します。