カメノドットコム
Debian大好きでメインで節操ない感じ。
GMOもわりと好き。
RSS feedly

他のバージョンのパッケージをaptインストール

Debian公式のものだけ使っていれば不要なんだがそうもいかない。
LinuxでポイントサイトのFlash見る手段は限られてるんだよ! はい、そこー。窓か林檎しとけよとか言わない。Linuxでやることに意味がある。多分。
仕事がM$サーバメインだからストレス発散してるだけという点は否定しない。

aptの設定

Debianには「stable(安定版)」「testing(テスト版)」「untable(不安定版)」「experimental(開発版)」というのがある。
「stable(安定版)」が公式にリリースされていて、コードネームがついてるやつだ。2014/01現在の安定版は Wheezy だな。
そして用意されているパッケージのインストールには「aptitude」コマンドが推奨されておりまする。「apt-get」が推奨されてるのはUbuntuですぞ。
Debian でも「apt-get」推奨になりました。Jessie では「aptitude」が自動インストールされなくなっています。
昔は「dselect」しかなかったんだがなぁ。今でもaptコマンドでどうにもならないときにdselectでなんとかなることあるぞ。そんな使い方はやめろと言いたいが(自分に対して)
「/etc/apt/sources.list」に「stable」を指定することもできるが、新リリース直後の不安定な時期にわけのわからんアップグレードされて大惨事になる可能性有り。
そんなわけで、以下のように記述してみた。

「/etc/apt/sources.list」の内容。

# Wheezy
deb http://ftp.jp.debian.org/debian/ wheezy main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ wheezy main contrib non-free
deb http://security.debian.org/ wheezy/updates main contrib non-free
deb-src http://security.debian.org/ wheezy/updates main contrib non-free
deb http://ftp.jp.debian.org/debian/ wheezy-updates main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ wheezy-updates main contrib non-free

「/etc/apt/sources.list.d/testing.list」の内容。

# Testing
deb http://ftp.jp.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ testing main contrib non-free

「/etc/apt/sources.list.d/unstable.list」の内容。

# Unstable
deb http://ftp.jp.debian.org/debian/ unstable main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ unstable main contrib non-free

「/etc/apt/sources.list.d/experimental.list」の内容。

# Experimental
deb http://ftp.jp.debian.org/debian/ experimental main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ experimental main contrib non-free

これで「aptitude update」をかけると、ゾロゾロと新しいパッケージが見つかると同時に「E: パッケージキャッシュを再構築できませんでした」と最後に言われるが気にしない(ヲイ)
んー。テスト版のソースがないって言ってるんだけど。てか「deb-src」の行はなくてもいいんじゃないかと思ったり。
そのへんはお好みで。あ、オイラはたった今「deb-src」をコメントアウトしました。やっぱいらんわ、コレ。
リストファイルだけ作って別のバージョンからパッケージを引っ張ってくると、aptコマンドでやっぱり不具合が出るので Pinning とかいうのもしておく。

「/etc/apt/preferences.d/stable」の内容。

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

こんな感じで各リリースのファイルを作る。
「Package:」はすべてを指定するのでワイルドカードにしておく。
「Pin:」はパッケージをどのバージョンで固定するかの指定。ここでは安定版を指定している。
「Pin-Priority:」はアップグレードしたりダウングレードしたり固定したりといった挙動を指定している。常にアップグレードの対象にするという事で、1000を指定している。
このへんの詳しいことは APT HOWTO (Obsolete Documentation) 第3章 - パッケージの管理 を見るべし。公式にまさるものはない。

つーことで。
具体的に何をやりたいかというと、libc6のバージョンを2.5以上にしたかったのである。

# aptitude -t stable show libc6
# aptitude -t testing show libc6
# aptitude -t unstable show libc6
# aptitude -t experimental show libc6

上記コマンドで調べた結果、もっともデンジャラスな開発版にしかないことが判明。それでも構わぬ。dpkgで不都合なかったんだから平気だ。
さっくり入れる。依存関係も勝手に解決してくれるので任せる。そのコマンドと、インストール結果。

# aptitude -t experimental install libc6 libc6-dev libc6-dbg
# aptitude show libc6
パッケージ: libc6
状態: インストール済み
自動的にインストールされた: いいえ
Multi-Arch: same
バージョン: 2.18-0experimental0
優先度: 要求
セクション: libs
メンテナ: GNU Libc Maintainers <debian-glibc@lists.debian.org>
アーキテクチャ: amd64
展開サイズ: 10.4 M
依存: libgcc1
提案: glibc-doc, debconf | debconf-2.0, locales
競合: prelink (<= 0.0.20090311-1), tzdata (< 2007k-1), tzdata-etch
破損: hurd (< 1:0.5.git20130928-2), locales (< 2.18), locales-all (< 2.18),
        lsb-core (<= 3.2-27), nscd (< 2.18)
置換: libc6-amd64
提供: glibc-2.18-1
説明: 組込用 GNU C ライブラリ: 共有ライブラリ
 システム上のほとんど全てのプログラムで使用される共有ライブラリが含まれます。
 本パッケージには標準 C ライブラリや標準数学ライブラリに加え、他の多くの
 ライブラリの共有ライブラリ版を含んでいます。
ホームページ: http://www.eglibc.org

あー……なんか無理矢理入れたから破損とか競合とか面倒なことになってるような。
tzdata関係とlocales関係はやばいんじゃね? とよくよく思い出してみましたら。
Experimentalのlibc6入れた時に再設定されてましたよ。確認したら、バージョンもexperimentalになってますな。そのへんは割愛(するなってか)
開発版がどんどんアップグレードしたら怖いので「/etc/apt/preferences.d/experimental」というファイルを作っておく。

「/etc/apt/preferences.d/experimental」の内容。

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

「Pin-Priority:」が100より小さいので、勝手にアップグレードとかしない。
ふう。これでaptコマンドで変な選択を迫られなくなったぜ。

Sponsored Link