2009/10/19(Mon)今頃Debian 4.0(etch)環境を整備する手順
2009/10/19 2:04
ちなみに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 です。としか書かれていなくて、じゃあ、etch (Debian 4.0)はどこだよ!と突っ込みたくなるが、多分メンテナンス忘れだろうな。
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 です。
ここに書かれているミラーサイトのうち日本のものは、rikenしかないので、とりあえず、rikenのリンクに飛ぶ。
が、これまた罠で、このリンク先はあくまでapt用のパッケージサービス用なので、isoイメージは得られないのだ。
そこで、一階層上にたどり、debian-cdimageへと行く。ここが正解。
で、archiveから好きなバージョンをダウンロードできる。
といっても、Debian 3.1以降しか手に入れられないようだが、海外にそれ以前のものがあるのかもしれない。
ま、今回は4.0がお目当てなので、「適当なリビジョン」→[i386]→[iso-dvd/iso-cd]と進んでダウンロードする。
前述したように「DVD版もCD版もDisk 1だけあればよい。」
たく、ここまで手間がかかる時点で
インストール手順
イメージが手に入れば、とりあえず焼くだけ。ここはどのLinuxも大差ないので省略。で、そのディスクからブートし、インストーラを起動する。
RedHat系では特にグラフィカルなGUIのセットアップが主流らしいが、DebianはDVD版でさえも硬派なテキストベースのCUIがセットアップがデフォルトらしいので*2、それに従う。
別段難しい点はなく、特に聞かれる質問に答えていくだけ。
IPv6しか使えない環境でインストールしたので途中の「ネットワークの設定」及び「追加のパッケージをどうするか」については、とりあえず"今設定しない"/"いいえ"にしておく。
で再起動したら終了。
鍵エラー
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を参照…位の親切さが欲しい。
ちなみに他にもいくつかエラーの種類があるらしいので、詳しくはこちらを参照。
鍵更新
で、具体的にどうするかというのは、先ほどの公開鍵である"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)gpgのimportedが1になっていることを確認する。" imported gpg: no ultimately trusted keys found gpg: Total number processed: 1 gpg: imported: 1 (RSA: 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もう嫌い…。
追記: インストール中に止まる現象について
Etchのr6等だと、インストール進行中にインストーラが止まってしまうことがあります。見たところ、DHCP等によってIPv4アドレスが振られている時に起こるようなので、IPv6 Onlyネットワークでやるか、LANを引っこ抜いてからインストールすると良いでしょう。
多分、「あ、ネットワークが使えるんだ」→「アクセスしてみよう…」→「GPG鍵エラー」→「ど、どうしよう…」で固まってるんだと思うんですがね。
追記: VMでgpg鍵のimportに失敗する現象について
gpgコマンドで鍵をwwwkeys.eu.pgp.netから受信する場合、ネットワークの設定をNATにしていると受信に失敗するらしい。このときだけはブリッジ設定でネットワークをreachableにしてやるとうまくいく。
うー、躓く箇所が多い……。
追記: 余分なパッケージのお掃除
明らかに使わなさそうな物一覧。これを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