debian lenny(stable) で stable 以外のパッケージを使う。

基本 lenny(stable) を使っているが一部パッケージを stable 以外から持ってくる方法を書きます。

注意点

  • testing,unstableのパッケージを導入すると、基本となるライブラリ(glibcなど)から変っていることがあるので連鎖的に大量のアップグレードが発生することがあり、環境が壊れてしまう可能性もあるようです。
  • backportsのパッケージ導入は、上記のような危険性はありませんが、Debian公式パッケージではないので、stableと比較すると信頼性に劣るようです。

/etc/apt/sources.listの設定

(使わないものはコメントアウトしておいた方がよい)

# lenny(stable)
deb http://ftp.jp.debian.org/debian/ lenny main non-free
deb-src http://ftp.jp.debian.org/debian/ lenny main non-free

deb http://security.debian.org/ lenny/updates main non-free
deb-src http://security.debian.org/ lenny/updates main non-free

deb http://volatile.debian.org/debian-volatile/ lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile/ lenny/volatile main

# lenny-backports
deb http://www.backports.org/debian lenny-backports main contrib non-free
deb-src http://www.backports.org/debian lenny-backports main contrib non-free

# squeeze(testing)
deb http://ftp.jp.debian.org/debian/ testing main non-free
deb-src http://ftp.jp.debian.org/debian/ testing main non-free

# sid(unstable)
deb http://ftp.jp.debian.org/debian/ unstable main non-free
deb-src http://ftp.jp.debian.org/debian/ unstable main non-free

lenny-backports用 公開鍵インストール

updateすると次のように公開鍵が無いと言われます。

$ sudo aptitude update
:
取得:16 http://security.debian.org lenny/updates/main Sources [47.2kB]
発見 http://security.debian.org lenny/updates/non-free Sources
583kB を 3s 秒でダウンロードしました (156kB/s)
パッケージリストを読み込んでいます... 完了
W: GPG error: http://www.backports.org lenny-backports Release: 公開鍵を利用できないため、以下の署名は検証できませんでした: NO_PUBKEY EA8E8B2116BA136C
W: これらの問題を解決するためには apt-get update を実行する必要があるかもしれません

公開鍵をインストールしてから再度updateします。

$ sudo aptitude install debian-backports-keyring
$ sudo aptitude update

設定ミスしていないか念のため確認

設定を誤るとupgradeでtestingやsid環境へ移行してしまうかもしれません。upgrade を -s オプションを付けて確認します。

$ sudo aptitude -s safe-upgrade

インストールのミス防止の為に。

1.情報を最新にしておく。

aptitude update

2.インストールしたいパッケージの使用可能なバージョン等を確認する。

apt-cache policy パッケージ名

3.明示的にアーカイブ名(stable,lenny-backports,testing,unstableなど)も指定する。
(さらに慎重にするなら -s オプションでテストしておく)

aptitude install パッケージ名/アーカイブ名

例えば、libapache2-svn をインストールしたいとき。まず apt-cache policy で使用可能なバージョンを調べる。

$ apt-cache policy libapache2-svn
libapache2-svn:
  インストールされているバージョン: (なし)
  候補: 1.5.1dfsg1-4
  バージョンテーブル:
     1.6.4dfsg-1 0
         90 http://ftp.jp.debian.org unstable/main Packages
     1.6.3dfsg-1 0
        100 http://ftp.jp.debian.org testing/main Packages
     1.5.1dfsg1-4 0
        500 http://security.debian.org lenny/updates/main Packages
     1.5.1dfsg1-2 0
        500 http://ftp.jp.debian.org lenny/main Packages

以上より、アーカイブ名を指定すれば希望のバージョンをインストールできる。

aptitude install libapache2-svn/unstable  -- 1.6.4dfsg-1 をインストール
aptitude install libapache2-svn/testing   -- 1.6.3dfsg-1 をインストール
aptitude install libapache2-svn/stable    -- 1.5.1dfsg1-4 をインストール

アップグレードのミス防止の為に。

1.情報を最新にしておく。

aptitude update

2.アップグレードされるパッケージを確認

apt-show-versions -u

$ apt-show-versions -u
libmagick++10/lenny upgradeable from 7:6.3.7.9.dfsg2-1~lenny1 to 7:6.3.7.9.dfsg2-1~lenny3
libmagick10/lenny upgradeable from 7:6.3.7.9.dfsg2-1~lenny1 to 7:6.3.7.9.dfsg2-1~lenny3
libruby1.8/lenny upgradeable from 1.8.7.72-3 to 1.8.7.72-3lenny1
libxml2/lenny upgradeable from 2.6.32.dfsg-5 to 2.6.32.dfsg-5+lenny1
libxml2-utils/lenny upgradeable from 2.6.32.dfsg-5 to 2.6.32.dfsg-5+lenny1
python-libxml2/lenny upgradeable from 2.6.32.dfsg-5 to 2.6.32.dfsg-5+lenny1

3.アップグレード

aptitude safe-upgrade
aptitude full-upgrade -- 不要パッケージの削除も行う。