私のメモです。参考になればいいですが、間違っていたらごめんなさい。
最近、話題に上るディストリビューションで、パッケージがコンパクト& FreeBSDのportsに似た”portage”というパッケージ管理システムを採用している。 バイナリも用意されているが、自分用のコンパイルオプションを付けてコンパイルする らしい。
所謂、「自分の環境に特化できる」ディストリビューション。
Gentoo Linuxのウェブページ にインストールの手順があるのだが、英語なので何を言っているのかよく分からない。 そこで、いろいろ探してみると、 その日本語訳が 千里さんのウェブページにあった。
僕は次のように理解してインストールした。
gentoo-ix86-1.X.iso :全てのPentium用のISOイメージ
gentoo-i686-1.X.iso :Pentium Pro以上のCPU用のISOイメージ(こっちの方が楽チン)
# modprobe tulip (AN983チップ搭載のネットワークデバイス。tulip.oではないことに注意)
# dhcp eth0
記述例
domain ドメイン名
nameserver 1st nameserver
nameserver 2nd nameserver
stageの展開方法
# cd /mnt/linux
(千里さんの訳
では/mnt/gentooになっているが、
原文は
linuxに変更になった模様)
# tar -xvjpf /mnt/cdrom/展開したいパッケージ名
# mount -o bind /proc /mnt/linux/proc
# cp /etc/resolv.conf /mnt/linux/etc/resolv.conf
# chroot /mnt/linux /bin/bash
# env-update
Regenerating /etc/id.so.cache...
# source /etc/profile
# emerge rsync
# nano -w /etc/make.conf
(nanoはviに代わるエディタです。
また、上記のmake.confのリンク先は、stage3から入れたときのmake.confファイルです。HTTPプロキシもmake.confで設定できます。)
# export PORTAGE_TMPDIR="好みのディレクトリ" (デフォルトは/var/tmp)
# cd /usr/portage
# scripts/bootstrap.sh
# export CONFIG_PROTECT=""
# emerge --pretend system
(インストールされるパッケージ一覧が表示されます)
# emerge system
日本のタイムゾーンになるよう、次のようにシンボリックリンクを張る。
# ln -sf /usr/share/zoneinfo/Japan /etc/localtime
これだけではハードウェアクロックをUTCと判別し、+9Hで時刻を返してくるので/etc/rc.confでUTCをlocalに
変更しておく。
CLOCK="local"
注意:UTCをlocaleを設定した場合、インストール終了後にemerge --update worldすると、アップデートできないパッケージ(iptables)がある。これは 上記のemerge rsyncがUTCで行われる、即ちJSTなら+9hで行われるからである。 そのため、emerge rsyncの前にdateで時間を確認し、date -sで時間を 修正してからemerge rsyncをすると良い。ちなみにdateコマンドでの時間修正 の書式は、date -s 'Thu Aug 22 19:00 2002 UTC' である(UTCで2002年8月22日木曜日の場合)。
Gentoo Linuxは、GENERICカーネルをバイナリで提供せず、 自分でコンパイルしたものをインストールする。その方法は以下の通り(カーネルの再コンパイルと同じ)。
次の通り、sysklogd、syslog-ng、metalogの中からシステムロガーを選択する。
xfsやLVMを使っている場合は、emergeでそれぞれxfsprogs、lvm-userをインストールする。
初期のfstabファイルでは/dev/〜がROOTだったりSWAPだったりするので、 適切なデバイス(たとえばhdb1など)に直す。
# passwd で設定
ホストネーム
# echo hostname >> /etc/hostname
/etc/hostsの設定
# nano -w /etc/hosts
192.168.0.1 mymachine.mydomain.com mymachine
という順番で記述。
/etc/conf.d/netの設定
# nano -w /etc/conf.d/net
(設定方法はファイル内に記述されている)
# rc-update add net.eth0 default
起動時に読み込むべきモジュールを/etc/modules.autoloadに書き込む。
書式は下のようにモジュール名を1行ずつ列記するだけである。
また、キーマップなどの設定は/etc/rc.confに記述する。こちらはrc.conf
ファイルを見ると設定可能なものやその記述方法が分かる
grubのインストール
# grub
grub> root (hd1,8) (/bootがあるパーティションをgrubへ教える)
grub> setup (hd1,8) (grubのインストール先。マスターブートレコードなら(hd0)である)
grub> quit
※grubでは、/dev/hda=>hd0、/dev/hdb=>hd1、/dev/hda3=>(hd0,2)と1つ番号がずれていることに注意。
/boot/grub/menu.lstの編集
(この作業は無くてもGentoo Linuxは起動します。起動時の見栄えを整えるものです)
/boot/grub/menu.lstの一例
default 0
timeout 30
splashimage=(hd1,8)/boot/grub/splash.xpm.gz
title=Gentoo Linux
root (hd1,8)
kernel /boot/bzImage root=/dev/hda3 gentoo=nodevfs
chrootから抜け、安全にパーティションを切り離してリブートする。
# exit
# cd /
# umount /mnt/linux/boot
# umount /mnt/linux/proc
# umount /mnt/linux
# reboot
無事にインストールが終わったが、2つほど設定されていないものが あった。
cdromデバイスが無いと言っても、/dev/hdcや/dev/sdcが無いわけではないので、
/etc/fstabに書かれている/dev/cdroms/cdrom0にシンボリックリンクを張るだけである。
# ln -s /dev/hdb /dev/cdroms/cdrom0
googleでmknod、agpgart
をキーワードに検索すると、一発で
「i810 with XFree86 4.x HOWTO」
が見つかった。これに従って、次のコマンドで/dev/agpgartを作成した。
# mknod /dev/agpgart c 10 175
Gentoo Linuxでは、パッケージの管理はPortageで行われ、emergeというコマンド ラインを使ってインストールや管理が行われる。emergeはDebianのapt-getにも似ているような気が するが、パッケージのインストール形態がソースコードをコンパイルして行われることから、 FreeBSDのportsupgradeに近いと思われる。
Portageの使い方は、詳しくは Portage Manual を見てもらうとして、よく使うと思われるオプションなどを下に記した。
インストール。依存関係も解決される。パッケージの指定は、下のmozillaの ように、Portage以下のディレクトリ+ebuildファイルを指定しても良い。
依存関係を表示する。 Nは必要だけど未インストールのパッケージ、 Uはアップグレードされるパッケージである。
アンインストールする。
文字列を含むパッケージを検索。
Portageツリーを最新にする。
全てのパッケージを最新にする。--pretendと組み合わせると、 アップグレードされるパッケージが確認できる。
僕はXFceがお気に入りなので、下のコマンド一発でxfreeも含めてインストールした。
ちなみに、コンパイル&インストールが終わるまで、3時間以上掛かった(^^;;
まず、ネットサーフィンに必要なmozilla、メールクライアントのSylpheed、 XIMのkinput2、かな漢字変換のcannaをインストールした。
mozillaは、複数のバージョンが候補に挙がっていて、ファイルが見つからないものもあった ため、ちゃんとファイルが存在する1.0-r2をインストールした。
次にxfceのメニューなどを日本語にするため、localeを設定する。Debianや
FreeBSDでは.xsessionファイルでLANG=ja_JP.eucJP、LANGUAGE=jaに設定したが、startxコマンド
からの起動では.xsessionファイルを読み込まないようだ。そのため、Gentoo Linuxでは、
.xinitrcにlocaleを設定する(但し、LANGUAGE=jaではなくLC_ALL=ja_JP.eucJP)。
同様に、.xinitrcファイルにXIMやキーバインドの設定をする。これらの例は次のようになる。
(参考:Gentoo Linuxの日本語メーリングリスト:
http://www.freeml.com/message/gentoo@freeml.com/0000191
〜
http://www.freeml.com/message/gentoo@freeml.com/0000198)
上記の設定でlocaleやXIMなどはOKだが、このままでは、cannaを使用
する際に、わざわざ下のコマンドでcannaを起動させなくてはならない。
# /etc/init.d/canna start
cannaをスタートアップ時に自動で起動させるには、/etc/runlevel/default の下に、/etc/init.d/cannaのシンボリックリンクを貼れば良い。 (参考:Gentoo rc-scripts Guide)
これでxfceが日本語メニューになり、ネットサーフィンやメールが 日本語で行えるようになった。
先進的と言われるファイルシステムであるデバイスファイルシステムを Gentoo Linuxでは使用できるらしい(と言うより、それがデフォルトになっている)。 早速導入してみた。
その前に、USBのページに も書いたが、間違えて/usr/src/linuxが/usr/portage/sys-kernel/gentoo-linux にリンクされていた。僕はxfsファイルシステムを使っているので、正しくは /usr/portage/sys-kernel/xfs-linuxにリンクされるべきである。 そんなわけでリンクを張り直した。
カーネルで次の項目を設定すれば使用できるようになるらしい。()内は make menuconfigやxconfigを使った際に、どの項目の下にあるかを示す。
後はカーネルを再構築すればOK。
こっちで述べている ように、USBを使えるように設定をした。
USBのキーボード&マウスを使用するには、次の2つのことが必要らしい。
1に関しては、カーネルコンフィグレーションで以下の項目をモジュールにする。 (mではなくyにして組み込まないこと。USB関係は不安定なものが多い上、hotplugを支援する ソフトやUSB関係のモジュール自体が他のモジュールを呼び出すため、kernelに組み込まれていると エラーを吐くなるらしい。実使用上は問題ないのかも知れないが。。。)ちなみに、太字になっている 項目はUSBに必ず必要な項目であり、その他はキーボードとマウスに関する項目である。
USBコントローラ(UHCI、UHCI_ALT、OHCI)が分からなければ、全てをmにすれば良い。
また、MOUSEDEV_SCREENはXで使用している解像度を選択する(特に設定しなくてもいいのかも)。
さらに、USBマウスは/dev/input/miceデバイスを使用するため、/dev/input/miceデバイスノードが
無い場合は次のように作成しておく。
※Gentoo Linux 1.2からemerge --update worldで全体を アップグレードした後は、この項目が無いとマウスを認識しない(hotplugのバージョンが変わり、 /etc/hotplug/usb.agentが変更になったためと思われる)。マウスデバイスは /dev/input/mice又は/dev/input/mouse0になる。この2つのデバイスは自動で作成されるため、 上記のようにノードを作成する必要は無い。しかし、この2つのデバイスに、なぜかキーボードの 入力も入っているようである(catで見ると、マウスの入力だけでなくキーボードの入力も見える)。 マウスを抜き差しすると、/dev/input/mouse0は削除されたり作成されたりするが、 /dev/input/miceはそうならないため、マウスデバイスは/dev/input/mouse0と考えた方が いいと思われる。
また、2のソフトは/proc/bus/usb以下を参照するため、/etc/fstabに次の一行を 加える(無くてもエラーを吐くだけでモジュールのロードは適切に行われているようだが。。。)。
/proc/bus/usb以下を用いるには、CONFIG_USB_DEVICEFS=yである必要がある。また、 usbcore.oモジュールが呼び出されるまで/proc/bus/usbというディレクトリが 存在しないため、通常にマウントされるとエラーを起こしてしまう。そのためオプションに「noauto」 を指定している。
デバイスノードの作成と/etc/fstabの編集が終わったら、再構築したカーネルで 起動する。
2に関しては、2つのソフトがある。 murasakiと hotplug である。どちらを用いるかは対応するデバイスやディストリビューションでどちらを採用しているか による。Gentoo Linuxではmurasakiではなくhotplugである。
デバイスノードや/etc/fstabの編集を終えた後、hotplugをインストールしたところ Gentoo LinuxでもUSBキーボード&マウスを使用できるようになった。 また、XでUSBマウスを使用するには、XF86Config(-4)ファイルで、マウスの項目 (InputDeviceセクション)Options "Device" "/dev/mouse"を/dev/input/miceに 直す。USBホイールマウスの僕の設定は次のようになっている。
|
Section "InputDevice" # Identifier and driver Identifier "Mouse1" Driver "mouse" Option "Protocol" "IMPS/2" Option "Device" "/dev/input/mice(又は/dev/input/mouse0)" Option "ZAxisMapping" "4 5" EndSection |
emergeで長時間コンパイルするとハングアップするという現象がでた。 仕方なくresetボタンで再起動すると、 /etc/ld.so.cacheや/etc/ld.so.confが 空ファイルになっている。そのせいか、emerge Package名としても、 ダウンロードしてくれず、どのパッケージもインストールorアップグレードできなく なってしまった。
仕方なく再インストールしても、emerge --update worldや 他のパッケージのインストール中に必ずフリーズし、reset後にはld.so.cacheやld.so.conf が壊れてしまうと言う現象が続く。SystemCommanderでディスク表面の検査をしても、 bad sectorは見つからない。 そこで、それまでxfsにしていたのをext3にしたところ、 難なく全てのパッケージをインストールできた。xfsのせいなのだろうか???
これまでemerge rsync && emerge --update worldで アプリケーションを更新してきたが、そろそろシステム自身(gccなど)を更新 することにした。とは言っても、非常に簡単。 Gentoo 1.4 アップグレード・ガイド に書いてあるとおり、 4つのスクリプト をダウンロードして、順番に実行するだけである。
各スクリプトで掛かる時間は、 僕のPCで次の 通りであった。
| スクリプト番号 | 掛かった時間 |
| 1 | 10分 |
| 2 | 1.5時間 |
| 3 | 6時間 |
| 4 | 30分 |
結構時間が掛かるので注意(^^;;