2009/10/19(Mon)今頃Debian 4.0(etch)環境を整備する手順

2009/10/19 2:04 Software::Linux
某プロジェクトの検証のため、Debian 5.0(lenny)がリリースされているにもかかわらず4.0(etch)を使わなければいけない状況になったのでインストールしたのだが、普段Fedora等のRedHat系に慣れている私にとって、いろいろ躓くところがあったので、忘れないうちにメモ。

ちなみにGPG鍵更新の話は、他のバージョンのDebianやbackportsなんかで起こった際でも有効な手法です。

イメージについて

基本的にDVDイメージとCDイメージとネットインストール用CDイメージが提供されているが、Debianの場合はパッケージが大量にありすぎるので、DVDイメージでも1枚に収まりきらない。
で、インストーラの方はどうかというと、DVDもCDの方も基本的にはDisk 1だけあればよい。どちらも、OS的に必須の部分と詰められる限りのパッケージを詰めているような構成である。

ただこれはインストールして分ったことだが、CD版だとインストール直後のフォントがひどいのでDVD版をお勧めする。私の検証マシンにはCDしか読めるドライブが付いておらず、CDで何度か入れてひどい目にあったのだが…。このフォントの直し片は後述

ダウンロード先どこ!?

で、早速ダウンロードするわけだが、公式サイトをしばらく回ってみてもダウンロード先が見つからない。
どこもかしこもlennyへのリンクばかりでetchどこー!という感じである。*1

http://www.debian.org/から、「Debian を入手する」→「HTTP/FTP」と進み、下の方にある"「debian-cd」 アーカイブの公認ミラー"から適当なミラーサーバを選択する……のかと思いきや、ここからはlennyへのリンクしかない。
Fedoraとか、ディレクトリ階層をたどればいつでもFedora Core 1とかまで遡ってダウンロード可能なのに、どこに行ったらいいの!


しょうがないのでGoogleさんに頼ったらDebian ディストリビューションアーカイブというのがヒットする。
結果的にはここで有っているのだが、ぱっと見
sarge は Debian 3.1 です。
woody は Debian 3.0 です。
potato は Debian 2.2 です。
slink は Debian 2.1 です。
hamm は Debian 2.0 です。
bo は Debian 1.3 です。
rex は Debian 1.2 です。
buzz は Debian 1.1 です。
としか書かれていなくて、じゃあ、etch (Debian 4.0)はどこだよ!と突っ込みたくなるが、多分メンテナンス忘れだろうな。
ここに書かれているミラーサイトのうち日本のものは、rikenしかないので、とりあえず、rikenのリンクに飛ぶ。


が、これまた罠で、このリンク先はあくまでapt用のパッケージサービス用なので、isoイメージは得られないのだ。
そこで、一階層上にたどり、debian-cdimageへと行く。ここが正解。


で、archiveから好きなバージョンをダウンロードできる。
といっても、Debian 3.1以降しか手に入れられないようだが、海外にそれ以前のものがあるのかもしれない。
ま、今回は4.0がお目当てなので、「適当なリビジョン」→[i386]→[iso-dvd/iso-cd]と進んでダウンロードする。
前述したように「DVD版もCD版もDisk 1だけあればよい。」


たく、ここまで手間がかかる時点でDebianなんぞ大嫌いである。

*1 : 11/17追記: 友人Kに教えてもらいましたが、http://www.debian.org/ → リリース情報 → Debian GNU/Linux 4.0 → インストール情報のページ → i386と行くようです。こんなん分かるか、ぼけぇ!せめて「Debianを入手する」からリンク貼っとけ!と言いたい。

インストール手順

イメージが手に入れば、とりあえず焼くだけ。ここはどのLinuxも大差ないので省略。

で、そのディスクからブートし、インストーラを起動する。
RedHat系では特にグラフィカルなGUIのセットアップが主流らしいが、DebianはDVD版でさえも硬派なテキストベースのCUIがセットアップがデフォルトらしいので*2、それに従う。

別段難しい点はなく、特に聞かれる質問に答えていくだけ。
IPv6しか使えない環境でインストールしたので途中の「ネットワークの設定」及び「追加のパッケージをどうするか」については、とりあえず"今設定しない"/"いいえ"にしておく。

で再起動したら終了。

*2 : Ubuntuは逆に超簡素なGUIセットアップだが…

鍵エラー

Debian系ではパッケージ管理システムとしてaptが導入されており、これを使うことでdebパッケージを手軽にインストールできる。RedHat系で言うところのyumとrpmパッケージの関係である。

が、これが実に使えない
yumのインターフェースに慣れきっているからかもしれないが、鍵更新の手間がいるらしいのと、apt-get等を用いているとたまに依存関係がぶっ壊れて手がつけられなくなるのである。
今後の説明でも用いているaptitudeの方が若干賢いらしいので、apt-getよりaptitudeを強く推奨する。


まず最初に鍵の更新だが、セキュリティ上の理由で毎年更新され続けるらしい。
だもんで、旧バージョンをあえて使う場合などにはそれを更新しないと、aptがそもそも使えないという(セキュアなのかもしれないが)不便な設計である。*3


インストール直後、普通にaptitude updateするとこのようになるはずである。
# aptitude update

Ign cdrom://[Debian GNU/Linux 4.0 r6 _Etch_ - Official i386 DVD Binary-1 20081219-15:45] etch Release.gpg

Ign cdrom://[Debian GNU/Linux 4.0 r6 _Etch_ - Official i386 DVD Binary-1 20081219-15:45] etch Release

Ign cdrom://[Debian GNU/Linux 4.0 r6 _Etch_ - Official i386 DVD Binary-1 20081219-15:45] etch/contrib Packages/DiffIndex

Ign cdrom://[Debian GNU/Linux 4.0 r6 _Etch_ - Official i386 DVD Binary-1 20081219-15:45] etch/main Packages/DiffIndex

Reading package lists... Done
これはローカルメディアからインストールしたが、既にメディアが無く読みだせないのが原因。
まあネット経由でちゃちゃっと入れればよいので、例えば、IPv6が喋れる山形大学のミラーを足してみるのだが…
# cat /etc/apt/sources.list


# 以下をコメントアウト
#deb cdrom:[Debian GNU/Linux 4.0 r6 _Etch_ - Official i386 DVD Binary-1 20081219-15:45]/ etch contrib main


# 以下を追加(例えば山形大学)←これはもう使えない
#deb http://ftp.yz.yamagata-u.ac.jp/debian/ etch main contrib non-free
#deb-src http://ftp.yz.yamagata-u.ac.jp/debian/ main contrib non-free

# 以下を有効化 ←これももう死んでる?
#deb http://security.debian.org/ etch/updates main contrib
#deb-src http://security.debian.org/ etch/updates main contrib

# (2011/01/25現在、上記のリポジトリが消えてるので以下のように変更)
# 以下を追加
deb http://archive.debian.org/debian/ etch main contrib non-free
deb-src http://archive.debian.org/debian/ etch main contrib non-free

# 以下に修正
deb http://archive.debian.org/debian-security/ etch main contrib non-free
deb-src http://archive.debian.org/debian-security/ etch main contrib non-free

# aptitude update


(省略)
Fetched 107kB in 2s (39.5kB/s)
Reading package lists... Done
W: GPG error: http://ftp.yz.yamagata-u.ac.jp etch Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE302B
W: GPG error: http://security.debian.org etch/updates Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 9AA38DCD55BE302B
W: You may want to run apt-get update to correct these problems
とまぁ、鍵エラーに。
"apt-get update"って打つと直るかもね的なことが書いてあるけど、その前に鍵をインポートしない限り、延々とこのメッセージは消えない。
まったく1年単位で鍵更新が必要とか大概の人は知らないんだから、鍵更新してね!詳しくはこのURLを参照…位の親切さが欲しい。

ちなみに他にもいくつかエラーの種類があるらしいので、詳しくはこちらを参照。

*3 : yum等もGPG鍵認証を行ってはいるが、そんな不便に出くわしたことはないのだが……

鍵更新

で、具体的にどうするかというのは、先ほどの公開鍵である"9AA38DCD55BE302B"を検索すれば、結構答えが出ていて、そのようにやればよい。

"$ sudo su -"等でrootになってから、gpgに鍵をインポートする。
自分がハマったのだが、wwwkeys.eu.pgp.net等いくつかあるpgpサーバは、多分全てがIPv6対応していない。なので、この時ばかりはIPv4が喋れるネットワークにつないでおく必要がある。
# gpg --keyserver wwwkeys.eu.pgp.net --recv-keys 9AA38DCD55BE302B


gpg: directory `/root/.gnupg' created
gpg: can't open `/gnupg/options.skel': No such file or directory
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: keyring `/root/.gnupg/pubring.gpg' created
gpg: requesting key 55BE302B from hkp server wwwkeys.eu.pgp.net
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key 55BE302B: public key "Debian Archive Automatic Signing Key (5.0/lenny) " imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
gpgのimportedが1になっていることを確認する。

# gpg --armor --export 9AA38DCD55BE302B | apt-key add -


OK
つたなくOKと出ればOK。

データベース更新

ここまでくれば、先ほどの"apt-get update"を実行しろではないけれども、aptitude updateが通るようになり、aptが機能するようになる。
# aptitude update


Get:1 http://ftp.yz.yamagata-u.ac.jp etch Release.gpg [1032B]

Hit http://ftp.yz.yamagata-u.ac.jp etch Release
Ign http://ftp.yz.yamagata-u.ac.jp etch/main Packages/DiffIndex
Get:2 http://security.debian.org etch/updates Release.gpg [835B]

Ign http://ftp.yz.yamagata-u.ac.jp etch/contrib Packages/DiffIndex
Hit http://security.debian.org etch/updates Release
Ign http://ftp.yz.yamagata-u.ac.jp etch/non-free Packages/DiffIndex
Ign http://security.debian.org etch/updates/main Packages/DiffIndex
Ign http://security.debian.org etch/updates/contrib Packages/DiffIndex
Ign http://security.debian.org etch/updates/main Sources/DiffIndex
Ign http://security.debian.org etch/updates/contrib Sources/DiffIndex
Ign http://ftp.yz.yamagata-u.ac.jp etch/main Sources/DiffIndex
Hit http://security.debian.org etch/updates/main Packages
Hit http://security.debian.org etch/updates/contrib Packages
Hit http://security.debian.org etch/updates/main Sources
Hit http://security.debian.org etch/updates/contrib Sources
Ign http://ftp.yz.yamagata-u.ac.jp etch/contrib Sources/DiffIndex
Ign http://ftp.yz.yamagata-u.ac.jp etch/non-free Sources/DiffIndex
Hit http://ftp.yz.yamagata-u.ac.jp etch/main Packages
Hit http://ftp.yz.yamagata-u.ac.jp etch/contrib Packages
Hit http://ftp.yz.yamagata-u.ac.jp etch/non-free Packages
Hit http://ftp.yz.yamagata-u.ac.jp etch/main Sources
Hit http://ftp.yz.yamagata-u.ac.jp etch/contrib Sources
Hit http://ftp.yz.yamagata-u.ac.jp etch/non-free Sources
Fetched 1867B in 2s (748B/s)
Reading package lists... Done

番外編:フォントをまともにする

CD版からインストールした場合は、GNOMEパネルやターミナルのフォントがひどいことになっているが、これを直すには、以下のパッケージをaptで入れればよい。

これでフォント類とIME類がインストールされるはず。(ちょっとパッケージの選定は適当)
# aptitude install libuim-data libuim3 uim uim-anthy uim-common uim-fep uim-gtk2.0 uim-utils uim-xim ttf-dejavu ttf-kochi-gothic ttf-kochi-mincho ttf-opensymbol ttf-vlgothic

が、今度はttf-opensymbolのfontconfig周りでエラーが起こってしまうので、これを修復。
どうやらタイムスタンプの問題で不整合が起こっていると勘違いするらしい*4ので、次のようにして更新。
$ sudo find /usr/share/fonts/ -type d -exec touch  \;

$ sudo find /usr/X11R6/lib/X11/fonts/-type d -exec touch  \;

$ sudo find /var/lib/defoma/fontconfig.d/ -type d -exec touch  \;

$ sudo find /usr/local/share/fonts/ -type d -exec touch  \;
まあ、結論としては、DVDで入れられる環境ならDVDの方がよい、ってことです。

OSを使えるようにする段階までにこれほど手がかかるなんて、Debianもう嫌い…。

追記: インストール中に止まる現象について 2010/01/02

Etchのr6等だと、インストール進行中にインストーラが止まってしまうことがあります。
見たところ、DHCP等によってIPv4アドレスが振られている時に起こるようなので、IPv6 Onlyネットワークでやるか、LANを引っこ抜いてからインストールすると良いでしょう。
多分、「あ、ネットワークが使えるんだ」→「アクセスしてみよう…」→「GPG鍵エラー」→「ど、どうしよう…」で固まってるんだと思うんですがね。

追記: VMでgpg鍵のimportに失敗する現象について 2010/01/02

gpgコマンドで鍵をwwwkeys.eu.pgp.netから受信する場合、ネットワークの設定をNATにしていると受信に失敗するらしい。
このときだけはブリッジ設定でネットワークをreachableにしてやるとうまくいく。


うー、躓く箇所が多い……。

追記: 余分なパッケージのお掃除 2010/03/30

明らかに使わなさそうな物一覧。
これをaptitude purgeの引数に渡すと消してくれます。若干起動時間が稼げますよ。
avahi-daemon bittorrent bluetooth exim4 foomatic-db-hpijs foomatic-filters-ppds
gnome-btdownload hpijs hpijs-ppds hplip hplip-data libnss-mdns openoffice.org
openoffice.org-base openoffice.org-calc openoffice.org-common openoffice.org-core
openoffice.org-draw openoffice.org-evolution openoffice.org-gcj openoffice.org-gnome
openoffice.org-gtk openoffice.org-help-en-us openoffice.org-help-ja
openoffice.org-impress openoffice.org-java-common openoffice.org-l10n-ja
openoffice.org-math openoffice.org-thesaurus-en-us openoffice.org-writer printconf
python-uno bluez-gnome bluez-utils libbluetooth2 at exim4-base exim4-config 
exim4-daemon-light mailx mutt network-manager network-manager-gnome

一方で、私的に追加するものは、こちら。この辺はお好みで。
gcc g++ vim openssh-server subversion ntpdate
ethtool wireshark tcpdump
libraw1394-dev libdvbpsi4
firefox beep