今更etch-backportsとかを使う

Drupal6を入れようと思ったら、インストール対象サーバがまだEtchで、Apt-getから入れる場合は、Backportsを使わないといけない事に。

/etc/apt/source.lists
# etch
deb http://mirror.peer1.net/debian/ etch main
deb http://security.debian.org/ etch/updates main
deb http://www.jp.backports.org etch-backports main contrib non-free #追加

$ sudo aptitude update
$ sudo aptitude upgrade
$ sudo aptitude -t etch-backports install drupal6

でOK

ついでにapt-pinについてもちゃんと調べてみた。

通常だったら、the highest version of an available package wins、つまりバージョンが高いパッケージ(Stableが一番バージョンが高いと認識される&実際に/etc/apt/preferencesでのstableが700と一番高い値になっている)がインストールされちゃうんだけど、ここはupgradeしたくない、とか特定のバージョンを入れたい時にapt-pinを使う

/etc/apt/preferences 
Package: drupal6
Pin: release a=etch-backports
Pin-Priority: 999

な感じで。


Pinはリリース情報(lenny/lenny-backports/etch/etch-backportsなどなど)
Pin-Priorityはプライオリティ情報

その場合、Pin-Priorityとはapt-pinningで使われるパラメーターで

  • 1000以上:アップグレードするというバージョン制約が外れるのでダウングレードできるようになる
  • 990:apt-get の --target-release (-t) オプションが指定された際に利用される値
  • 989:apt-pinのディフォルト値
  • 500:(現在まだインストールされてない)通常アーカイブ
  • 101~989:インストール可能、update/upgrade対象パッケージ
  • 100:現在インストール済みパッケージ
  • 1~99:インストール可能だが、updateの対象にはならない
  • 0:インストールしない

通常の/etc/apt/preferencesは

Package: *
Pin: release a=stable
Pin-Priority: 700

Package: *
Pin: release a=testing
Pin-Priority: 650

Package: *
Pin: release a=unstable
Pin-Priority: 600

なのでstable > testing > unstableで、stableしかインストールされない。
まだpinしないといけないパッケージはないけども、いつか使うかもしれない。
ってかきれいな状態でのパッケージ管理を目指したいものだ。

結局今回はEtch->Lennyにアップグレードする事を決断。backportsは使わない事になった(´・ω・):;*。':;ヘックション