2009.6.20 Gentoo Linux 導入チュートリアル 導入チュートリアル 少し Linux に親しんでおいた方が良かろうと思い、Linux をインストールしてみた。数あるディス トリビューションの中から選んだのは Gentoo Linux というやつ。いろいろと特徴はある(また、先 行き不安になるような噂もある)ようだが、何と言ってもクールな気がしたのが選択理由。 Linux 専用マシンを用意するのは難しいので、VMware Player による仮想マシンを使う。今のとこ ろ思い描いている用途は: ・PostgreSQL の勉強 ・Ruby/Ruby on Rails の勉強 ・Apache/Perl/PHP/(サーバサイドの)Java の勉強 本書の構成は: Portage VMware Player Gentoo インストール CD Live CD の起動 ファイルシステムの準備 Gentoo システムのコピー プロファイルと USE フラグ インストール ブートローダの準備と再起動 最低限の使用準備 X、Fluxbox、日本語環境 デスクトップの強化 PostgreSQL ハンドブックより その他 Portage Gentoo の最大の特徴は、何を入れるにしてもまずはソースを入手し、そのマシンに最適な設定で ビルドしてから組み込む、という方針をとっている点だろう。それらの作業を自動化するのがパッ ケージ管理ソフト Portage である。Gentoo のインストールに入る前に、Portage の基本事項を理 解しておいた方が良い。 -1- 2009.6.20 Portage では、パッケージのインストールや削除、更新などの作業を emerge コマンドで行う。 emerge コマンドの コマンドの使用例 # # # # # # # emerge emerge emerge emerge emerge emerge emerge --search some_pkg --pretend --verbose some_pkg some_pkg --update --deep some_pkg --unmerge some_pkg --info --verbose --update --deep --newuse world some_pkg が利用可能か探す。 some_pkgga が依存するパッケージや USE フラグの確認。 some_pkg をインストール。 some_pkg を最新バージョンに更新。 some_pkg を削除。 現在の状態を表示。 最新の USE フラグ設定を使って全パッケージを最新に更新。 Portage はパッケージ間の依存関係を把握しているので、some_pkg をインストールすると、それ が依存する他の全パッケージも一緒にインストールされる。ここで言うインストールとは、ソース のダウンロードから、config、ビルド、組み込み(いわゆるインストール)までを意味する。 ソースのダウンロードやビルドを自動化している一方で、マシンごとのチューニングを可能にして いるのが USE フラグの存在である。USE フラグを使うと、例えばカレンダーアプリをインストール するときに、KDE のサポートは要るけど GNOME サポートは不要といったカスタマイズを行うこと ができる。非常に多くのカスタマイズ項目(つまり USE フラグの種類)が用意されており、Gentoo のインストール中も、そのいくつかを使用する。 全 USE フラグの フラグの一覧 http://www.gentoo.org/dyn/use-index.xml?style=printable emerge コマンドを使ってパッケージをインストールした後に、「/etc の下のファイルを更新し ろ」みたいなメッセージが出る場合がある。多くのパッケージは、起動時に/etc の下の設定ファイ ルを参照する。この設定ファイルはユーザが編集することも多いので、Portage は、パッケージの インストール(や更新)時に既存の設定ファイルを上書きしないようになっている。古い設定ファイル と新しい設定ファイルのマージはユーザに任される。とは言え、Gentoo をインストールするだけ なら、常に新しい方の設定ファイルを使えば良いだろう。それには etc-update コマンドを実行す る。 設定ファイル 設定ファイルの ファイルの更新 # etc-update ここで -5 を入力すると、古い設定設定ファイルを新しいファイルで上書き する。 VMware Player VMware Player はインストール済みと仮定する。 VMware Player のインストーラ VMware-player-2.5.0-118166.exe -2- 2009.6.20 gentoo.vmx の内容 .encoding = "Shift_JIS" config.version = "8" virtualHW.version = "3" displayName = "Gentoo on VMware" guestOS = "other26xlinux" ide0:0.present = "TRUE" ide0:0.fileName = "disk00.vmdk" ide0:0.mode = "persistent" ide0:0.redo = "" ide0:1.present = "TRUE" ide0:1.fileName = "disk01.vmdk" ide0:1.mode = "persistent" ide0:1.redo = "" ide1:0.present = "TRUE" ide1:0.startConnected = "TRUE" #ide1:0.fileName = "linux.iso" #ide1:0.deviceType = "cdrom-image" ide1:0.fileName = "auto detect" ide1:0.deviceType = "cdrom-raw" floppy0.startConnected = "FALSE" usb.present = "TRUE" memsize = "1024" ethernet0.present = "TRUE" ethernet0.connectionType = "nat" ethernet0.addressType = "generated" ethernet0.generatedAddress = "00:0c:29:d0:d2:88" ethernet0.generatedAddressOffset = "0" #Ethernet0.virtualDev = "vmxnet" Ethernet0.virtualDev = "e1000" tools.remindInstall = "FALSE" draw = "gdi" uuid.location = "56 4d 5c 3c 91 eb 67 da-a9 f9 3a 38 4d 3d 25 1f" uuid.bios = "56 4d 80 a5 32 4b b9 01-ca dd cf d5 51 d0 d2 88" virtualHW.productCompatibility = "hosted" tools.upgrade.policy = "manual" tools.syncTime = "TRUE" checkpoint.vmState = "" -3- 2009.6.20 disk00.vmdk と disk01.vmdk が仮想 HDD で、それぞれ、物理ドライブに相当する。これらのファ イル(ブランクディスクのイメージファイル)は qemu というソフトで作成することができる。 qemu のインストーラ qemu-0.9.1-windows.zip ブランクディスクの ブランクディスクの作成 d:¥vmware¥gentoo> qemu-img create -f vmdk disk00.vmdk 20G インストール中はネットを使うので、ethernet0 の設定は重要。connectionType は NAT、 virtualDev は(デフォルトの vmxnet ではなく)e1000 とかにする1。 gentoo.vmx の ethernet0 設定 ethernet0.connectionType = "nat" #Ethernet0.virtualDev = "vmxnet" Ethernet0.virtualDev = "e1000" Intel Express 1000 をエミュレート。 linux.iso というのは、VMware Tools のインストール CD イメージである。VMware Server に同 梱されている。しかし今のところ、VMWare Tools をインストールするに至ってない2。 VMware Server のインストーラ VMware-server-1.0.8-126538.tar vmx と vmdk が準備できたら、vmx をダブルクリックして VMware Player を開始する。仮想 HDD は空っぽなので何も起動しないはずだが、開始直後に F2 を押すと BIOS 画面に入れる3ので、 CD-ROM からブートできるように設定する。 悲しいことに、VMware は時々固まってしまう。そういう場合は運が悪かったと考えよう。ダメも とで、以下を試してみるとよい。 ・コンソール上でマウスを動かしてみる →回復するかも ・フロッピーの接続ボタンを押す →ちょっと動くかも(プロンプトが出たら poweroff する) 1 vmxnet だと、Gentoo のインストーラがデバイスを認識してくれない。他にも解決策があるとは思うが…。 ゲスト OS が Windows の場合は、VMware Tools をインストールした方が便利。 3 これが実は結構むずかしい。ウィンドウが出たらすぐにアクティブ化し(つまりマウスでウィンドウ内をクリックし)、すかさず F2 を連打(あるいは 長押し)する。失敗したら、メニューの[VM ware Player]→[Troubleshoot]→[Reset]で再チャレンジ。あと、BIOS 操作中は US キーボード配列っ ぽい。 2 -4- 2009.6.20 Gentoo インストール CD 公式サイトからインストール手順(ハンドブック)やインストール CD イメージを入手できる。CD イ メージを CD-R に焼いて、PC へセットする4。 ハンドブックの ハンドブックの入手先(公式 入手先 公式サイト 公式サイト)と サイト とミラーサイト一覧 ミラーサイト一覧 http://www.gentoo.org/doc/en/handbook/handbook-x86.xml http://www.gentoo.org/main/en/mirrors2.xml インストール用 インストール用の Live CD イメージ livecd-i686-installer-2008.0-r1.iso Live CD の起動 VMware Player を開始すると、起動メニューが出るはず。ここで、すばやく gentoo nox keymap と入力する5。nox は「X を使わない」、keymap は「途中で keymap を選択する」という意味。 Live CD を起動 boot: gentoo nox keymap ももたしていると、デフォルトモードで起動してしまう。 ばらくすると keymap 選択画面になるので、jp と入れる。これも、すばやく。 keymap の指定 << Load keymap (Enter for default): jp ももたしていると、US モードで起動してしまう。 無事起動したら、ルートでログインした状態になるはず。以降、インストール中は(必要なら)4 つの シェルを使い分けることができる。シェルを切り替えるには Alt-F1~Alt-F4 を押せばよい。この時 点では、CD-R と RAMDISK のみがマウントされた状態である。CD-R は/mnt/cdrom に、 RAMDISK はルート(/)にマウントされている。 まずは root のパスワードを変更しておこう6。ただし、このパスワードを使うのは Live CD で作業 する間だけ。 root のパスワード変更 パスワード変更 # passwd 4 CD-R に焼かずに、VMware の ide1:0 とかに iso ファイルをつなげてもいい。 ハンドブックでは、ここで gentoo と入れるようになっているが、そうすると GUI が起動して networkless インストールっぽい挙動になってしま い、「CUI に root でログインした状態になる」というハンドブックの説明と食い違う。 6 インストール中に誰かがネット経由で root にログインしたらマズいので、というのが理由みたい。 5 -5- 2009.6.20 さて、この時点で eth0 は認識されているはず。運悪く認識されてなかった場合は、ハンドブックを 参照しつつ対処する必要がある。 eth0 の確認 # /sbin/ifconfig eth0 また、ハンドブックでは「インストール中にマニュアルをオンラインで見たければ lynx を使え」と なっているが、Live CD には lynx が入ってない(!)。ハンドブックは印刷しておく方が良さそうだ。 ファイルシステムの ファイルシステムの準備 2 つの仮想 HDD にパーティションを設定する。2 つの HDD は、それぞれ、/dev/sda と/dev/sdb という名前で認識されている。パーティションの設定には fdisk コマンドを使う。 パーティションの パーティションの設定 # fdisk /dev/sda コマンドの説明: m: ヘルプを表示 p: 現在の設定内容を表示 d: パーティションを削除 c: パーティションを作成 t: パーティションのタイプを指定 a: パーティションをアクティブ化 w: 設定内容を反映 ルート(/)と swap 用のパーティションは必須だが、それ以外には決まりが無い。以下は設定のヒン ト。/var と/home に独立した(しかも同じ仮想 HDD 内の)パーティションを割り当てるのは、バッ クアップしやすそうだから7。 ・/dev/sda1 を/boot 用に、ext2 フォーマット8で 32MB 程度 ・/dev/sda2 を swap 用に、512MB 程度 ・/dev/sda3 をルート(/)用に、ext3 フォーマットで残り容量すべて ・/dev/sdb1 を/var 用に、ext3 フォーマットでドライブの半分程度の容量 ・/dev/sdb2 を/home 用に、ext3 フォーマットで残り容量すべて ・/boot はアクティブ化しておく 7 8 /var には PostgreSQL のデータベースが置かれるし、/home はユーザファイルの置き場。 Linux では ext2 や ext3 が一般的。ext3 は ext2 にジャーナル機能を付けたもので、障害時のリカバリ性が高い。 -6- 2009.6.20 各パーティションを初期化する。 パーティションを パーティションを初期化 # # # # # # mke2fs mke2fs mkswap swapon mke2fs mke2fs /dev/sda1 -j /dev/sda3 /dev/sda2 /dev/sda2 -j /dev/sdb1 -j /dev/sdb2 ext2 で初期化。 -j は ext3 の意味(journal の j か?)。 各パーティションを/mnt/gentoo にマウントする。/mnt/gentoo は、インストール後のルート(/) になる。 パーティションを パーティションをマウント # # # # # # # mount mkdir mount mkdir mount mkdir mount /dev/sda3 /mnt/gentoo /mnt/gentoo/boot /dev/sda1 /mnt/gentoo/boot /mnt/gentoo/var /dev/sdb1 /mnt/gentoo/var /mnt/gentoo/home /dev/sdb2 /mnt/gentoo/home Gentoo システムの システムのコピー ここから Gentoo システムを仮想 HDD へコピーしていく。必要なのは、Gentoo システムのベース となる Stage3 Tarball と、Portage Tree(Portage が管理するパッケージのリスト)である。 Stage3 Tarball と Portage Tree stage3-i686-2008.0.tar.bz2 portage-latest.tar.bz2 どちらも、簡易ブラウザの links コマンドや wget コマンドを使ってダウンロードする。また、この 先はファイルのタイムスタンプに依存した作業(make とか)が多くなるので、まずは時計が合ってい ることを確認しておく。 時計の 時計の確認 # date まだタイムゾーンを設定してないので UTC になるが気にしなくて良い。 -7- 2009.6.20 で、Gentoo システムをコピーしよう。コピーと言っても tar を解凍するだけである。しかし、こ の解凍作業がくせもので、途中で固まったり、空き容量不足で失敗することがあった9。 Stage3 Tarball と Portage Tree の展開 # cd /mnt/gentoo # links http://www.gentoo.org/main/en/mirrors.xml あるいは… # # # # # wget ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO/releases/x86/2008.0/stages/ stage3-i686-2008.0.tar.bz2 wget ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO/snapshots/portage-latest.tar.bz2 tar xvjpf stage3-i686-2008.0.tar.bz2 2>err.txt cat err.txt tar xvjf portage-latest.tar.bz2 2>err.txt cat err.txt rm err.txt stage3-i686-2008.0.tar.bz2 portage-latest.tar.bz2 無事に解凍が終わると、/mnt/gentoo の下に Gentoo システムが展開される。 Gentoo システム展開後 システム展開後 # ls bin boot dev etc home lib lost+found mnt opt portage proc root sbin sys tmp usr var # df Filesystem 1K-blocks Used Available Use% Mounted on tmpfs 516200 16416 499784 4% / /dev/sr0 705024 705024 0 100% /mnt/cdrom /dev/loop0 603904 603904 0 100% /mnt/livecd udev 10240 192 10048 2% /dev /dev/sda3 20097744 1206368 17870448 7% /mnt/gentoo /dev/sda1 38856 482 36368 2% /mnt/gentoo/boot /dev/sdb1 10317828 168364 9625348 2% /mnt/gentoo/var /dev/sdb2 10317860 154236 9639504 2% /mnt/gentoo/home さて、ここまでで、全マシンに共通する環境がコピーされた。このあとは、マシン特有の環境構築 作業に入る(これからがインストールの本番)。ソースのダウンロードやビルドは Portage が自動化 するので、ソースの入手先やビルドオプションを Portage の設定ファイルに書いておこう10。 /mnt/gentoo/etc/make.conf の編集 CFLAGS="-O2 -march=i686 -pipe" CXXFLAGS="-O2 -march=i686 -pipe" CHOST="i686-pc-linux-gnu" MAKEOPTS="-j5" 並列化指数(CPU コア数+1 を指定)。 GENTOO_MIRRORS="ftp://ftp.ecc.u-tokyo.ac.jp/GENTOO" SYNC="rsync://rsync.asia.gentoo.org/gentoo-portage" ↑この 2 つは mirrorselect コマンドでリダイレクトしてもいい。 cd /mnt/gentoo mirrorselect -i -o >>etc/make.conf mirrorselect -i -r -o >>etc/make.conf 9 VMware のマウスドライバや仮想 HDD イメージ(vmdk ファイル)の拡張処理に問題があるかも。成功するまでやり直す。 ハンドブックではこのタイミングで make.conf を編集しているが、chroot した後でも良さそうな気がする。chroot に続く env-update の中で make.conf が参照されるのだろうか? 10 -8- 2009.6.20 現在の(RAMDISK 上の)ファイルシステムから流用できるファイルをコピーする。 現在の 現在のファイルシステムから ファイルシステムからコピー からコピー # cp -L /etc/resolv.conf /mnt/gentoo/etc # mount -t proc none /mnt/gentoo/proc # mount -o bind /dev /mnt/gentoo/dev -L はシンボリックリンクを追う、の意味。 この先は、/mnt/gentoo をルート(/)に見立てて作業する。 ルート(/)を ルート を/mnt/gentoo へ変更 # # # # chroot /mnt/gentoo /bin/bash env-update source /etc/profile export PS1="(chroot) $PS1" chroot 中だと気付くよう、プロンプトを変える。 tarball から展開した Portage Tree は最新ではないので、emerge コマンドを使ってネット上の最 新 Tree と同期する。rsync サーバの不調で失敗する可能性もあるが、リトライすればよい。また、 Portage Tree は不定期に更新されるので、Gentoo のインストール後も、ときどき同期した方が良 い。 Portage Tree を最新化 # emerge --sync 時間がかかる(数十分)ので、他のことをしながら待った方がいい。 同期のあと、emerge コマンド(Portage 自体)の更新を促された場合は、Portage を emerge する。 Portage の更新 # emerge --oneshot portage # etc-update これも時間がかかる。このとき python も一緒にインストールされ、途中で beep が鳴るかもしれないが気にしない。また、「/etc の下のファイルを更新 しろ」みたいなメッセージが出た場合は、etc-update コマンドを使って更新 する。 いつもではないが、今回は、ここで -5 を入力する。 プロファイルと プロファイルと USE フラグ マシンの用途に合わせてプロファイルを選択する。プロファイルはマシンの性格のようなもので、 "desktop"や"server"などが用意されている11。選択中のプロファイルは、/etc/make.profile のリ ンク先を調べると分かる。 選択中プロファイル 選択中プロファイルの プロファイルの確認 # ls -ld /etc/make.profile ....... /etc/make.profile -> ../usr/portage/profiles/default/linux/x86/2008.0 11 Portage はパッケージを導入するときにマシンのプロファイルを参考にする模様。どの程度の差が出るのかは不明。 -9- 2009.6.20 このタイミングではデフォルトのプロファイルが選択されているので、このまま作業を進めれば問 題ない。どうしてもプロファイルを変えたい場合は、上記の 2008.0 ディレクトリにある"desktop" や"server"などから選び、make.profile のリンク先を変更すればよい。 プロファイルの プロファイルの変更 # ln -snf /usr/portage/profiles/default/linux/x86/2008.0/desktop /etc/make.profile プロファイルよりも細かくマシンの性格を制御するために Portage が用意している仕組みが USE フラグである。USE フラグを指定する方法はいくつかあるが、全パッケージに共通の USE フラグは /etc/make.conf で指定する。今の時点では、「X を使うが、KDE と GNOME サポートは不要」く らいを指定しておけば十分だろう12。なお、chroot 後は vi が使えなくなっているので、テキストフ ァイルの編集には nano を使う13。 nano の起動 # nano -w /etc/make.conf -w は no wrap の意味。 /etc/make.conf を編集 USE="X -kde -gnome" ここで決めたマシンの性格は、このあとのインストール作業に決定的な影響を与える。特に USE フ ラグの設定は慎重に行おう。途中で性格を変えれないことはないが、それなりの覚悟が必要である。 冒険的な設定を試すなら、VMware の仮想 HDD ファイル(disk00.vmdk や disk01.vmdk)をバック アップしておくと良いだろう。 インストール ここからがインストール作業の本番。マシン特有の環境に config していく。 まずはロケールを指定しよう。 /etc/locale.gen を編集 #en_US ISO-8859-1 ja_JP.EUC-JP EUC-JP #ja_JP.UTF-8 UTF-8 これ以外はコメントアウト。余計なのがあると、あとで苦労するかも14。 locale を有効化 # locale-gen 12 ウィンドウマネージャには Fluxbox を使う。 ここで vi を emerge してもいいけどね。 14 当初、ISO-8859-1(Latin-1)と UTF-8 を入れてインストールを進めたが、Eterm が起動せず、xterm で日本語が表示できなかった。また、その ときはカーネルの menuconfig で Japanese Charset を ON にしていた。試行錯誤の末に、「ISO-8859-1(Latin-1)と UTF-8 は ON、Japanese Charset は OFF」で決着した。最大の理由は、/usr/share/fonts/misc/にフォントが入ってなかったこと(なぜ入らなかったのかは依然として不明 だが…)。font-misc-misc を emerge したら misc フォントがインストールされ、Eterm も xterm もうまくいくようになった。 13 - 10 - 2009.6.20 タイムゾーン情報 タイムゾーン情報を 情報をコピー # cp /usr/share/zoneinfo/Japan /etc/localtime Linux カーネルのソースをインストールする。これにより、/usr/src/linux にソースが置かれる。 カーネルソースを カーネルソースをインストール # emerge gentoo-sources # ls -ld /usr/src/linux ....... /usr/src/linux -> linux-2.6.29-gentoo-r5 カーネルを config してビルドする。config できる項目は多いので、本格的にチューンするなら気 合を入れる必要がある。ひとまず動かすには、以下の機能は有効にした方が良い。 ・/proc ファイルシステム …デフォルトで ON のはず ・virtual memory file system …デフォルトで ON のはず ・ext2/ext3 …デフォルトでは ext2 が OFF になっている ・symmetric multi-processing …デフォルトで ON のはず ・HID devices -> USB Human Interface …デフォルトで ON のはず ・File System -> NLS -> Japanese Charset …デフォルトで OFF だが、そのままがいいかも カーネルの カーネルのコンフィグと コンフィグとビルド # cd /usr/src/linux # make menuconfig # make && make modules_install 当然、時間がかかる。 # cp arch/i386/boot/bzImage /boot/plain-2.6.29-gentoo-r5 # ls -l /boot/plain-2.6.29-gentoo-r5 ....... 3535312 ........ カーネルの一部の機能はモジュール形式15で提供されている。起動時に自動的にロードしたいモジュ ールがあるなら、設定ファイルに書いておけばよい。 カーネルモジュールの カーネルモジュールの確認 # find /lib/modules/2.6.27-gentoo-r8/ -type f -iname '*.o' -or -iname '*.ko' カーネルモジュールの カーネルモジュールの自動ロード 自動ロード用設定 ロード用設定ファイル 用設定ファイル # nano -w /etc/modules.autoload.d/kernal-2.6 15 モジュールは動的にロードできる。 - 11 - 2009.6.20 起動時にマウントしたいドライブを/etc/fstab に書いておく。 /etc/fstab の編集 /dev/sda1 /dev/sda2 /dev/sda3 /dev/sdb1 /dev/sdb2 /dev/cdrom shm /boot none / /var /home /mnt/cdrom /dev/shm ext2 swap ext3 ext3 ext3 auto tmpfs defaults,noatime sw noatime defaults,noatime defaults,noatime noauto,ro,user nodev,nosuid,noexec 1 0 0 0 0 0 0 2 0 1 2 2 0 0 ネットワーク関連の情報を設定する。 /etc/conf.d/hostname の編集 HOSTNAME="genpon" /etc/conf.d/net の編集 dns_domain_lo="home" nis_domain_lo="nis" DNS を使う場合。 NIS を使う場合。 固定 IP アドレスを使う場合。 config_eth0=( "192.168.0.2 netmask 255.255.255.0 brd 192.168.0.255" ) routes_eth0=( "default via 192.168.0.1" ) DHCP を使う場合。 config_eth0=( "dhcp" ) dhcp_eth0="nodns nontp nonis" /etc/issue の編集 This is ¥n (¥s ¥m ¥r) ¥t このメッセージがログイン前に表示される。エスケープシーケンスの意味は、 順に、ホスト名、OS 名、マシン名、リリース番号、時刻。 起動時に 起動時に eth0 を有効にする 有効にする # rc-update add net.eth0 default "default"はランレベルを指す。 /etc/hosts の編集 127.0.0.1 genpon localhost root のパスワードを変更する。Live CD を起動した直後にもパスワードは変更したが、ここで変更 するのは、HDD から起動するときに(つまり今後ずっと)使う root パスワード。 root のパスワード変更 パスワード変更 # passwd - 12 - 2009.6.20 /etc/rc.conf を編集する。rc ファイルの総元締めみたいなファイルだと思う。 /etc/rc.conf の編集 UNICODE="yes" EDITOR="/usr/bin/vim" ロケールに関する設定を追加。 /etc/conf.d/keymaps の編集 KEYMAP="jp106" /etc/conf.d/clock の編集 CLOCK="local" TIMEZON="Japan" システムログの収集ツールをインストールする。ログビューアの logrotate も入れておこう。 syslog のインストール # emerge syslog-ng logrotate # rc-update add syslog-ng default これが予想外に時間がかかる。 DHCP を使うなら、クライアント用のデーモンをインストールする。 dhcpcd のインストール # emerge dhcpcd ブートローダの ブートローダの準備と 準備と再起動 Gentoo システムのインストールが終わったので、最後にブートローダ grub をインストールする。 grub のインストール # emerge grub - 13 - 2009.6.20 ロードメニューは/boot/grub/grub.conf に設定する。ここでタイプミスすると、システムが全く 起動せず手に負えなくなるので慎重に編集しよう。 /boot/grub/grub.conf の編集 default 0 timeout 5 splashimage=(hd0,0)/boot/grub/splash.xpm.gz title Gentoo Linux 2.6.29-r5 root (hd0,0) (hd0,0)は GRUB が組み込まれたパーティション(つまり/dev/sda1)。 kernel /boot/plain-2.6.29-gentoo-r5 root=/dev/sda3 title Gentoo Linux 2.6.29-r5 (rescue) root (hd0,0) kernel /boot/plain-2.6.29-gentoo-r5 root=/dev/sda3 init=/bin/bb Windows とのデュアルブートマシンなら。 title Windows XP rootnoverify (hd0,3) makeactive chainloader +1 通常、/etc/mtab にはマウントされたドライブの一覧が書かれている。これから grub を HDD へ組 み込むわけだが、そのときに/etc/mtab が参照される。しかし、chroot した今の状態では、 /etc/mtab は存在しない。そこで、/etc/mtab を作ってやる。 /etc/mtab を作る # grep -v rootfs /proc/mounts >/etc/mtab grub の組み込み # grub-install --no-floppy /dev/sda 最初の方で I/O エラーが出るが気にしない。リトライしてるっぽい。 いよいよ Gentoo を起動してみる。chroot から抜け、再起動する。CD は外しといてね。 再起動 # exit # umount -a # reboot - 14 - 2009.6.20 ブートに失敗する場合は grub.conf の編集ミスを疑う。Live CD で起動し、以下の手順でリトライ しよう。 /boot/grub/grub.conf の再編集 # # # # # # # # # # # # # # # mount /dev/sda3 /mnt/gentoo mount /dev/sda1 /mnt/gentoo/boot mount /dev/sdb1 /mnt/gentoo/var mount /dev/sdb1 /mnt/gentoo/home mount -t proc none /mnt/gentoo/proc mount -o bind /dev /mnt/gentoo/dev chroot /mnt/gentoo /bin/bash env-update source /etc/profile nano -w /boot/grub/grub.conf grep -v rootfs /proc/mounts >/etc/mtab grub-install --no-floppy /dev/sda exit umount -a reboot 起動するようになったあとで grub.conf を変更したい場合は、編集して grub-install するだけで良 い。 最低限の 最低限の使用準備 起動するようにはなったが、この時点では root ユーザしか存在しないので、ユーザ登録しておこう。 ユーザの ユーザの追加 # useradd -m -G users,wheel,adm -s /bin/bash maru -m を付けると、ホームディレクトリを作り、/etc/skell にあるファイルをコピーしてくれる。 -G は所属グループ。wheel に所属すると su で root になれる。 # passwd maru vim もインストールしておこう。 vim のインストール # emerge vim # env-update && source /etc/profile vim の USE フラグは、デフォルトでは -ruby となっている。いずれ、ruby を入れるときに問題になるかなぁ…。 すぐに使えるように。 Portage を補助するツール gentoolkit は是非入れておきたい。 gentoolkit のインストール # emerge gentoolkit - 15 - 2009.6.20 X、 、Fluxbox、 、日本語環境 X を入れるには、emerge する前に/etc/make.conf を編集する必要がある。 /etc/make.conf を編集 INPUT_DEVICES="keyboard mouse" VIDEO_CARDS="nvidia vmware" ATI や Intel の場合は別。 X のインストール # # # # # emerge xorg-x11 これ、かな~り時間がかかります(数時間)。 env-update source /etc/profile Xorg -configure cp /root/xorg.conf.new /etc/X11/xorg.conf デフォルトのままだとマウスの動きが変なので、vmware 用のマウスドライバをインストール。 VMWare 用のマウスドライバ # emerge xf86-input-vmmouse X が起動するかどうか試してみましょう。 X の起動 # su - maru $ startx $ exit # 終了するには、Ctrl-Alt-Backspace。 日本語環境用のファイルを揃えていく。 フォント一覧 フォント一覧を 一覧を表示する 表示する xlsfonts のインストール # emerge x11-apps/xlsfonts 日本語フォント 日本語フォントの フォントのインストール # emerge aquafont mikachan-font-ttf mplus-fonts ipamonafont 漢字変換ソフト 漢字変換ソフト canna のインストール # emerge canna # rc-update add canna default 次回ブート時から自動起動する。いまこの場で起動する方法は後述。 /etc/conf.d/canna を編集 CANNASERVER_OPTS=" -inet" /etc/hosts.canna を編集 localhost 先頭行に挿入。 - 16 - 2009.6.20 日本語入力ソフト kinput2 をインストールするが、kinput2 専用の USE フラグを指定する必要があ るので、まず/etc/portage/package.use を編集する。このようにパッケージ特有の USE フラグは make.conf ではなく package.use に記述する。 /etc/portage/package.use の編集 app-i18n/kinput2 canna 日本語入力ソフト 日本語入力ソフト kinput2 のインストール # emerge kinput2 X の起動時に kinput2 も一緒に起動するよう、ホームディレクトリの.xinitrc を編集する。 ~/.xinitrc を編集 export LANG=ja_JP.eucJP unset LC_ALL export LC_CTYPE=ja_JP.eucJP export XMODIFIERS="@im=kinput2" export CANNAHOST=localhost kinput2 -canna & 画面の解像度やフォント、マウスドライバなどを変えるため、X の設定ファイルを編集する。 /etc/X11/xorg.conf を編集 Section "Files" FontPath FontPath FontPath "/usr/share/fonts/xxx" "/usr/share/fonts/yyy" "/usr/share/fonts/zzz" 日本語フォントのパス(xxx や yyy は適宜変更)。 Section "InputDevice" Identifier "Keyboard0" Option "XkbLayout" "jp" Section "InputDevice" Identifier "Mouse0" Driver "vmmouse" Option "ZAxisMapping" "4 5" Section "Monitor" HorizSync 31.5 - 120.0 VertRefresh 56.0 - 120.0 Section "Screen" DefaultDepth 24 SubSection "Display" Modes "1024x768" - 17 - 2009.6.20 ウィンドウマネージャ Fluxbox とターミナルソフト Eterm を入れる。Fluxbox については USE フ ラグも設定する。 /etc/portage/package.use の編集 x11-wm/fluxbox -gnome -kde truetype vim-syntax Fluxbox と Eterm のインストール # emerge x11-terms/eterm fluxbox Fluxbox のフォントは、スタイルごとに設定ファイルで指定する。デフォルトのままだと日本語が 化けることがあるらしい。そこで、スタイルの設定ファイルを修正して、フォントを日本語フォン トに変える。例えば、LemonSpace というスタイルを修正してみよう。 /usr/share/fluxbox/styles/LemonSpace の編集 *font: menu*font: toolbar*font: -mplus-*-medium-r-*-*-*-100-*-*-*-*-*-* -mplus-*-medium-r-*-*-*-120-*-*-*-*-*-* -mplus-*-medium-r-*-*-*-120-*-*-*-*-*-* Fluxbox を起動してみよう。デスクトップ上で右クリックするとメニューが出るのでスタイルから LemonSpace を選ぶ。Eterm を起動すれば、Shift-Space で日本語入力もできるはず。 Fluxbox の起動 # # $ $ $ $ # /etc/init.d/canna start su maru cd echo "exec startfluxbox" >>~/.xinitrc startx exit canna を起動するためにリブートしてもいいが、ここは手動で起動する。 X 起動時に Fluxbox も起動。 グラフィカルログインマネージャの SLiM を入れる。これにより、次回の起動時から GUI 経由でロ グインできるようになる。 SLiM のインストール # emerge slim # rc-update add xdm default /etc/conf.d/xdm の編集 DISPLAYMANAGER="slim" デスクトップの デスクトップの強化 アートワーク(壁紙 アートワーク 壁紙とか 壁紙とかスキン とかスキン)の スキン のインストール # emerge commonbox-styles commonbox-styles-extra fluxbox-styles-fluxmod gentoo-artwork - 18 - 2009.6.20 システムモニタの システムモニタのインストール # emerge conky イメージビューワの イメージビューワのインストール まだ使ったことないけど。 # emerge gqview FireFox のインストール # emerge mozilla-firefox Fluxbox の設定ファイル 設定ファイルの ファイルの編集 起動スクリプト。 コンテキストメニュー。 ショートカットキー。 # vi ~./fluxbox/startup # vi ~./fluxbox/menu # vi ~./fluxbox/keys PostgreSQL PostgreSQL のインストール # emerge postgresql # passwd postgres # emerge --config =postgresql-8.1.11 # # # $ $ # $ $ $ rc-update add postgresql default /etc/init.d/postgresql start su postgres createuser -a -d -P -E -W maru createuser -A -D -P -E -W foo su maru createdb sampledb psql sampledb dropdb sampledb 最後に、「emerge --config =postgresql-8.0.15 を実行しろ」みたいなメッ セージが出るはず。 管理用アカウント postgres のパスワード設定。 これで、データベース用のディレクトリ/var/lib/postgresql/data が初期化さ れる。 ブード時に PostgreSQL も起動する。 ためしに、手動でデータベース起動してみる。 管理者用ユーザ登録。 一般用ユーザ登録。 データベース作成。 データベースに接続。 データベース削除。 ハンドブックより ハンドブックより ハンドブックに書いてあることで、自分が経験/実施しなかったことを挙げておく。 PCI デバイス用 デバイス用のツールを ツールをインストール # emerge pciutils これで lspci コマンドが使えるようになる。 デバイスの デバイスの一覧を 一覧を見る # ls /lib/modules/`uname -r`/kernel/drivers デバドラを デバドラを入れる # modprobe - 19 - 2009.6.20 今回は eth0 がすんなり認識されたので助かったが、ハンドブックにはネットワークにつながらない 場合の対処方法が書いてある。まぁ、かなりレアな NIC を使ってない限り大丈夫だろう。ただ、無 線 LAN しか使えない場合は大変かも。 無線 LAN の設定 # iwconfig /tmp や/var/tmp を別パーティションにするなら、パーミッションを変更すること。 /tmp と/var/tmp のパーミッション # chmod 1777 /tmp # chmod 1777 /var/tmp その他 その他 eth0 を切るには、rc-update から削除して、/etc/conf.d/rc を編集する。 起動時に 起動時に eth0 を開始しない 開始しない # rc-update del net.eth0 /etc/conf.d/rc を編集 RC_PLUG_SERVICES="!net.eth0" - 20 -
© Copyright 2024 Paperzz