Linuxゲリラ戦記

/etc/apt/sources.listを編集しよう。

/etc/apt/sources.list(パッケージのダウンロード元設定ファイル・Debian)

/etc/apt/sources.list

Debianでは上記のファイルを書き換えることでapt-getやaptitude、Synapticsなどでパッケージをダウンロード・インストールする時のパッケージのダウンロード元を指定・変更できます。

Debianの場合完全にフリーなソフトウェアだけでLinuxを作ろうという目標の為、デフォルトの状態ではダウンロード出来るパッケージに制限があります。/etc/apt/sources.listを書き変えることでより多くの様々なソフトウェアが使えるようになります。そこで、ここでは編集の一例を見せます。編集は好きなテキストエディタで行って構いません。

なお、編集後はソースリストのアップデート(更新)を行ってください。

aptitude update

もしくは

apt-get update

もちろんSynapticsからもアップデート出来るはずです。

また、バージョンその物を変更した場合(安定版→テスト版、安定版→不安定版、テスト版→不安定版)は編集後にupdateだけでなくupgradeも必要です。

aptitude update
を行った後に
aptitude full-upgrade

もしくは

apt-get update
を行った後に
apt-get dist-upgrade
デフォルトの状態(インストール直後の何もしていない状態)の例
# 
# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

# deb cdrom:[Debian GNU/Linux 5.0.0 _Lenny_ - Official i386 NETINST Binary-1 20090214-16:03]/ lenny main

deb http://ftp.jp.debian.org/debian/ lenny main
deb-src http://ftp.jp.debian.org/debian/ lenny main

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

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

多分こんな感じのはずですが細かい所はバージョンによって異なります。

この状態では Debian フリーソフトウェアガイドラインに 従った main セクションのものしか取得されません。

なお行頭に#がある行はこれを解析するソフトウェア(apt-getコマンドやaptitudeコマンド、Synapticsソフトウェアなど)では無視されます(コメントアウトという)。つまり、上記は以下と同義です。

deb http://ftp.jp.debian.org/debian/ lenny main
deb-src http://ftp.jp.debian.org/debian/ lenny main

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

deb http://volatile.debian.org/debian-volatile lenny/volatile main
deb-src http://volatile.debian.org/debian-volatile lenny/volatile main
contribを追記する
deb http://ftp.jp.debian.org/debian/ lenny main contrib
deb-src http://ftp.jp.debian.org/debian/ lenny main contrib

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

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

contribを追記しました。これにより「ソフトウェア作成者によってフリーであるとされているが、他のフリーでないソフトウェアもインストールしないと使えないもの」もダウンロードできるようになります。

non-freeを追記する
deb http://ftp.jp.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ lenny main contrib non-free

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

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

non-freeを追記しました。これにより「そのソフトウェアの利用や再配布になんらかの煩わしい制限があるもの」もダウンロード出来るようになります。一般的なDebianユーザーはこのようにcontribとnon-freeを追記している場合が多いです。

backportsを追記する
deb http://ftp.jp.debian.org/debian/ lenny main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ lenny main contrib non-free

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

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

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

deb http://www.backports.org/debian lenny-backports main contrib non-freeという一文を一番下に追記しました。これにより、安定版よりも新しいソフトウェアを使用しているテスト版、不安定版の一部のソフトウェアを安定版で使用することが出来るようになります。

ただbackportsの追記は任意のため、これを追記すると次回から警告が出るようになります。警告をなくすにはbackports追記、ソースリストのアップデート後、keyringをインストールします。

aptitude install debian-backports-keyring

もしくは

apt-get install debian-backports-keyring

もちろんコマンドからではなくSynapticsからもインストール出来ます。

恒久的にDebian安定版を使う
deb http://ftp.jp.debian.org/debian/ stable main
deb-src http://ftp.jp.debian.org/debian/ stable main

deb http://security.debian.org/ stable/updates main
deb-src http://security.debian.org/ stable/updates main

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

さて、一番最初の例に戻って今度はlennyの箇所をstableに書き変えました。現在(2009-12-05)のDebian/GNU Linuxの安定版のコードネームはlennyです。最初の表記の通りにlennyとコードネームを指定しておくと、lennyに関するソフトウェアの更新情報は取得しますが、後々の新しい安定版が出てきてコードネームもlennyではない名前に変わると、新しい安定版のソフトウェアを取得出来なくなります。

もちろん、lennyと書かれた箇所を、新しく出た安定版のコードネームに書き変えることで新しい安定版のソフトウェアが取得出来るようになるのですが、新しい安定版が出る度にコードネームの箇所を書き変えるのは面倒ですね。そこで安定版であればコードネームが変わっても自動的にその新しく出た安定版のDebianのソフトウェアを使えるようにする、と言うのが今回の方法です。

stableとは「安定版」という意味を持ち、例え将来どのような名前のバージョンの安定版が出てきても、自動的にそれに追随する、つまり使えるようになるというものです。これなら、一度書き変えるだけで、後はDebianプロジェクトが崩壊でもしない限り、最新の安定版を永遠に使うことが出来ます。

「だったらさいしょから『lenny』と書かずに『stable』と書いてくれれば良いのに……」と思うかもしれませんが、Debianユーザーの中には何らかの事情で、もし新しい安定版のDebianが出ても古いソフトウェアをそのまま使いつづけたい人もいるかもしれません。そんなユーザーのためにデフォルトの状態では『stable』ではなく『lenny』になっているんですね。多分。

Debian安定版・conrtib追記の例
deb http://ftp.jp.debian.org/debian/ stable main contrib
deb-src http://ftp.jp.debian.org/debian/ stable main contrib

deb http://security.debian.org/ stable/updates main contrib
deb-src http://security.debian.org/ stable/updates main contrib

deb http://volatile.debian.org/debian-volatile stable/volatile main contrib
deb-src http://volatile.debian.org/debian-volatile stable/volatile main contrib
Debian安定版・conrtib・non-free追記の例
deb http://ftp.jp.debian.org/debian/ stable main contrib non-free
deb-src http://ftp.jp.debian.org/debian/ stable main contrib non-free

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

deb http://volatile.debian.org/debian-volatile stable/volatile main contrib non-free
deb-src http://volatile.debian.org/debian-volatile stable/volatile main contrib non-free
Debianテスト版の例
deb http://ftp.jp.debian.org/debian/ testing main
deb-src http://ftp.jp.debian.org/debian/ testing main

deb http://security.debian.org/ testing/updates main
deb-src http://security.debian.org/ testing/updates main

Debianには安定版のみではなく、テスト版、不安定版というものもあります。上記はDebianのテスト版を使いたいときの例です。Debianテスト版は、安定版よりも新しいソフトウェアが使える一方で、安定版ほど堅牢ではありません。つまり、どこかでバグやセキュリティの問題が潜んでいる可能性があるという事です。また、もし大きなバグが潜んでいた場合は不安定版よりも修復パッケージが用意されるのに時間がかかるので、Debianでは、もし使いたいならテスト版よりもむしろ不安定版を使うことを勧めているようです。

また、注意点が一つ。安定版をテスト版にアップデートすると、安定版では使えないはずの新しいパッケージを使用するので、パッケージ同士の依存関係の問題で二度と安定版に戻れなくなります(不安定版にアップデートはできます)。もし安定版を再び使用したくなったら、一からインストールしなければならないので注意してください。

また、debian-volatileは、spamフィルタリングやウィルススキャンなど常に最新にしておくべきセキュリティに関するためのものですが、安定版はその性質上古いソフトウェアしか使えない場合があり、debian-volatileはそんな安定版に出来るだけ最新のセキュリティソフトウェアを提供するためのものです。

テスト版、不安定版ではセキュリティ情報はdebian-volatileを使用しなくても、適宜新しいソフトウェアをインストール出来るため、テスト版・及び不安定版では必要ありません(多分)。■参考・Debian -- debian-volatile プロジェクト

Debianテスト版・contrib追記の例
deb http://ftp.jp.debian.org/debian/ testing main contrib
deb-src http://ftp.jp.debian.org/debian/ testing main contrib

deb http://security.debian.org/ testing/updates main contrib
deb-src http://security.debian.org/ testing/updates main contrib
Debianテスト版・contrib・non-free追記の例
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

deb http://security.debian.org/ testing/updates main contrib non-free
deb-src http://security.debian.org/ testing/updates main contrib non-free
Debian不安定版の例
deb http://ftp.jp.debian.org/debian/ unstable main
deb-src http://ftp.jp.debian.org/debian/ unstable main

Debian不安定版はテスト版よりもさらに新しいソフトウェアが使用できますが、テスト版よりもさらにバグやセキュリティの問題が潜んでいる可能性が高いです。しかし、バグやセキュリティに関する問題が発生した場合はテスト版よりも先に修正のためのパッケージが不安定版に導入されるので、Debianではテスト版を使うよりはむしろ不安定版を使うことを推奨しているようです。

また、不安定版にはsecurity.debian.orgのサポートはありません。これはソフトウェアが適宜最新のものが導入されるため、それ自身で比較的早くバグやセキュリティの問題が解決されるためです。安全なサーバを構築したい場合は安定版を使うことを強くお勧めします。参考Debian -- Debian セキュリティ FAQ

安定版からテスト版を飛ばして不安定版にはしないでください。安定版から不安定版にしたい場合は一度テスト版にして、update、upgradeをした後に不安定版へ移行してください。参考・Debian リファレンス - stable, testing, 又は unstable ディストリビューションへのアップグレード(情報が古いので、現在はこの限りではないかもしれませんが、念のため)。

また、不安定版はソフトのアップデートはaptitude full-upgradeが基本だそうです。が、公式サイトでの情報が見つけられませんでした。ごめんなさい。

また、不安定版はテスト版よりもさらに新しいパッケージを使用しているので、依存関係の問題から一度不安定版を使用すると二度と安定版、及びテスト版には戻れませんのでご注意ください。

Debian不安定版・contrib追記の例
deb http://ftp.jp.debian.org/debian/ unstable main contrib
deb-src http://ftp.jp.debian.org/debian/ unstable main contrib

deb http://security.debian.org/ unstable/updates main contrib
deb-src http://security.debian.org/ unstable/updates main contrib
Debian不安定版・contrib・non-free追記の例
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

deb http://security.debian.org/ unstable/updates main contrib non-free
deb-src http://security.debian.org/ unstable/updates main contrib non-free
テスト版・不安定版をtesting・unstableではなくコードネームで指定する。

不安定版、テスト版を経てバグを取り除いていったものがDebianの安定版に昇格する、というのがDebian安定版の仕組みです。つまり、testingやunstableの代わりに、現在のtestingのコードネーム、現在のunstableのコードネームを指定することで、そのバージョンに追随することが出来ます。

例えば現在の不安定版のコードネームはsidですが、上記の不安定版の例のunstableの箇所をsidにすることで、sidがテスト版に昇格した時は自動的にテスト版に。安定版に昇格した時は自動的に安定版になります。「なんだ!こうすりゃ不安定版から安定版に戻れるじゃん!」おぉ、確かにその通り。でも、テスト版で問題が起こるとちょいと修正に時間がかかるかもしれない、っていうのが難点だ──が、でもこうやって不安定版やテスト版から再び安定版に戻るのもありですね。

ちなみに現在のテスト版のコードネームはsqueeze。不安定版はsidだそうです。

と、まぁ上記で編集方法の一例を見せてみましたが、間違いがあるかもしれませんので変更は自己責任でお願いしますね。あと、これ以外にもいろいろとパッケージを提供している所もあると思うのでググってみてください。

Debianで安定版・テスト版・不安定版のどのバージョンを使うべきか

The Debian GNU/Linux FAQ - Choosing a Debian distributionを情報元(ソース)として簡単に書きます。

  • もしセキュリティか安定性があなたにとって最も重要な事なら:安定版を使うのがもっとも好ましい。
  • もしあなたがデスクトップLinuxとしてDebianをインストールしようとしている初心者ユーザーだったら安定版から始めよう。いくつかのソフトウェアはとても古い。だが、もっともバグが少ない環境で安定版は動作する。Debian GNU/Linuxを使用するのに少しでも自信がついてきたなら、古いソフトばかりの『安定版』から、最新ソフトが使える『不安定版』に簡単に変更できる。
  • もしあなたがデスクトップLinuxとしてLinuxを使うつもりで、Linuxを使用した経験が多少あり、奇妙キテレツなバグでも動揺しないなら不安定版を使用することをお勧めする。不安定版なら最新の素晴らしいソフトウェアを使用することが出来、バグも速やかに修復される。
  • もしあなたがサーバーを運用していて、強固な安定性を必要としているか、またはインターネットに公開しているなら安定版を使用しよう。これが、もっとも安全な選択肢だ。
テスト版と不安定版ならどちらがいいの?

完璧な答えは無いが、賢い推測ならできる。

  • 安定版は強固だ。問題が起こることはない。
  • テスト版は不安定版よりも問題が起こることはない。しかし、もし問題が起こったときは修正に長い期間を要するだろう。時には数日間も。時には数ヶ月も。
  • 不安定版は最新のソフトウェアを使用しているが故に、ソフトウエアのアップグレードやバグの修復など、毎日たくさんのソフトウェアの変更があるだろう。なので問題が起こる可能性も三つのバージョンの中では一番大きい。しかしながら、問題解決の修正の手段が2、3日のうちに用意され、なにより不安定版はDebianの三つのバージョンの中でも最新のパッケージを使うことが出来るバージョンだ。
なぜテスト版では問題が起きたときの修正に長い時間がかかるの?

不安定版での修正パッケージが出て一定期間が過ぎた後にテスト版に修正パッケージを導入する決まりになっているからだ。修正パッケージその物にバグがある可能性もあるしね。また、テスト版ではRC版のバグレポート(確定的ではないバグの修正方法。「もっと他に良い修正方法があるかもしれない……」)は受け入れないことになってる。つまり、バグの修正レポートがRC版ばかりで一向に正式版がでないときや、他の要因が重なれば、テスト版でのバグやセキュリティの修正には数ヶ月もかかることがある。

補足

デフォルトの/etc/apt/sources.list
Debian GNU/Linux 6.0 Squeezeのオリジナルの/etc/apt/sources.list
情報源
Debian -- パッケージ
Debian -- "lenny" のセクション一覧
Debian JP Project - ミラーサイトについて
start [Debian Backports]
instructions [Debian Backports]
このエントリーをはてなブックマークに追加