スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

apt-pinning

何度も書いていますが、今現在僕はDebian lennyをメイン環境にしております。

しかし、一部に安定版と不安定版のパッケージ管理システムには用意されているくせにテスト版lennyに用意されていないソフトウェアパッケージが存在します。イジメか?

まあ、たぶん不安定版のバージョンにバグがあってテスト版に下ろせず、かといって安定版のバージョンでは古すぎて依存関係の解決ができないとかそういう事情があるんでしょうけど。

しかし、多少の不安定さは覚悟するからどうしてもそのパッケージが欲しい、という場合もあるわけで。どうしたら良いか?



まあ、単純に考えれば/etc/apt/sources.listに

deb http://cdn.debian.or.jp/debian/ sid main contrib non-free
deb-src http://cdn.debian.or.jp/debian/ sid main contrib non-free

とでも追記しておいて、あとはapt-get install…とやればsidリポジトリ上にある目的のパッケージをインストールすることはできます。

しかし、このままdist-upgradeでもしようものならディストロ自体がlennyからsidに入れ替わってしまう。

うーん、なんとか目的のパッケージだけを今後sidから入るように、それ以外のものはlennyのままに、と都合のいいことはできないかねえ…。



できるみたいです。それをapt-pinningというらしい。

とりあえず、日本語で一番わかりやすく解説してくれているのはここでしょうか。しかし、このDebian GNU/Linuxスレッドテンプレを見ればDebianの扱い方について大抵のことは載っている…。

ここの解説によると、/etc/apt/preferencesに必要な書き込みをすることで、パッケージを自在に操れると。

よし、じゃあやってやろうじゃない。

# vi /etc/apt/preferences

以下のように書き込む。

Package: nvidia-kernel-source
Pin: release a=unstable
Pin-Priority: 101

Package: nvidia-glx
Pin: release a=unstable
Pin-Priority: 102

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

とりあえず、今lennyに無くて俺が困っていて、且つ、経験則的にlennyに落ちてくる見込みの薄いものはnvidia-kernel-sourcenvidia-glxだけなので、とりあえずPackage:にはそれを指定。

Pin:には貰ってくる先のunstableを。ここでは"sid"という名前を使ってはいけないようだ。

で、Pin-Priority:には数字を入力して、その数字で指定パッケージの扱いを定めるようだ。本来ならば、sidで配布されるパッケージはバグ等が見つからなければ一定期間をおいて自動的にテスト版に降りてくるはずなので、「指定すればインストールできるが、アップグレードの対象にはならない」1から99を指定したい所だが、nvidia-kernel-sourceとnvidia-glxはしばらくlennyに落ちてきていないので、とりあえず「アップグレードの対象になる」101以降の数字でピン止め。

もちろん、それ以外のパッケージがアップグレードされては困るので、この二つ以外は「アップグレードの対象にはならない」90でピン止め。Package: *と指定すると、すべてのパッケージという意味合いになるらしい。



で、終わったら保存して閉じ、

# apt-get update
# apt-get dist-upgrade -d

とやってみる。警告が出ない・大量のアップグレードが入らない、ならば成功。

ということで、あとはその指定したパッケージをapt-get installで入れてやればよろしい。

ただ、これをやると101以上で指定したパッケージがlennyに落ちてきたとしてもsidでのバージョンが入り続けるので、注意が必要ですな。

関連記事

テーマ : UNIX/Linux
ジャンル : コンピュータ

コメントの投稿

非公開コメント

プロフィール

ざっぱー

Author:ざっぱー
(この画像について)

当ブログについて
メール
(このメールアドレスへの特定電子メール (迷惑メール) の送信はお断りします)

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。