VirtualBoxにGentooをインストール

なんかインストールばっかりやってる気がしますけどw

今使っているマシンがサーバ PC よりよっぽど速いのでクロスコンパイル用の環境を仮想マシン上に構築することにした。実は以前のメインマシンでも作ったからそのディスクイメージを持ってくれば済むだけの話なんだけど、あいにくディスクごと喪失! てことで作りなおします。

事前作業

ホスト PC 上に VirtualBox がインストールされている必要しておきます。

それから VirtualBox を起動し、新規仮想マシンをつくります。仮想マシンアーキテクチャx86 (i686) と amd64 とどっちにするか迷ったのですが、今回も amd64 にしときます。

今回使っている virtualbox は、バージョン 3.14 です。

マニュアル

基本的にコレに従えば OK。


ただし、『7.d. もう一つの選択: genkernelを使う』にある coldplug は要らない。

インストールメディア

最低限の環境があればいいので、ミラーから install-amd64-minimal-${VERSION}.iso をインストールしてきます。今回は IIJ から install-amd64-minimal-20100311.iso をダウンロードしてきました。

コレを iso イメージのまま、先程つくった仮想マシンに読み込ませて CD から起動させます。

/etc/make.conf

/etc/make.conf に困るところなのですが、とりあえずこんな感じにしときます。

CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"
MAKEOPTS="-j5"

CHOST="x86_64-pc-linux-gnu"

USE="-X -gnome -kde bash-completion"

X とかその手のは今回使うつもりがないので外してみます。 fbterm さえあればいい。とりあえずクロスコンパイル用の最低限必要な環境を目指します。これだけじゃ多分足らないので、適宜更新するつもり。

CFLAGS はクロスコンパイルを行う際に問題になるかもしれないけど、今はこのまま。


(追記)
USE フラグには cjk nls の多言語対応フラグと、個人的に寂しいので alsa flac も追加しときます。

忘れそうな設定ファイルの設定

忘れそうなので、先に日本語109キーボードタイムゾーンだけ設定しておきます。


/etc/conf.d/keymaps

KEYMAP="jp106"
SET_WINDOWKEYS="yes"


/etc/conf.d/clock

CLOCK="local"
TIMEZONE="Asia/Tokyo"


/etc/localtime

# ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime

ユーザーの追加

基本的には root で作業するわけじゃないので一般ユーザを追加しときます。

# useradd -m -G users ${ユーザ名}
# passwd ${ユーザ名}


さっきのユーザが root になれるように wheel グループにいれときます。

# gpasswd -a ${ユーザ名} wheel


もちろん、ユーザを追加したときにこんな感じで書いてしまってもいいんだけどね。

# useradd -m -G users,wheel ${ユーザ名}

必要なツールのインストール

マニュアルにもあるけど、一応書き出しておく。

sys-kernel/gentoo-sources

どーせいつも /usr/src/linuxシンボリックリンクを張るので、いっそ USE フラグに立ててしまう。

# nano -w /etc/portage/package.use
sys-kernel/gentoo-sources               symlink   ←この1行追加

# emerge -v gentoo-sources
sys-kernel/genkernel

普通にマージする。

# emerge -v genkernel


その後、どーせいつも --menuconfig とかをつけて使うので、設定ファイルでデフォルトで有効にしてしまう。

# nano -w /etc/genkernel.conf

MENUCONFIG="yes"
DISKLABEL="yes"


そうすると、いじっていない状態のコレと一緒になる。

# genkernel --menuconfig --disklabel all
sys-boot/grub

最適化する必要がないため、念のためこんな感じでマージしておく。

# CFLAGS="" USE="-custom-cflags" emerge -v grub
その他
  • app-admin/metalog
  • sys-process/vixie-cron
  • sys-apps/slocate
  • net-misc/dhcpcd

個人的にあると便利というかほぼ必須なものを入れる

個人的にないと困るものを入れておきます。

app-admin/sudo
sudo するのに必須
net-misc/ntp
時刻合わせに必須
net-dns/bind-tools
これがないと nslookup すらできない
net-fs/nfs-utils
nfs をマウントするのに必須
app-portage/eix
portage の検索に個人的に必須
app-portage/portage-utils
portage の操作に必須
app-portage/gentoolkit
revdep-rebuild
net-fs/mount-cifs
samba マウントにあると便利
net-ftp/ftp
あると便利
sys-fs/ntfsprogs
NTFS の領域をいじるのにあると便利
app-portage/splat
ebuild にかかった時間を見るのに便利
sys-apps/pciutils
lspci するのに必須
sys-apps/usbutils
lsusb するのに必須

その後

distcc とかいろいろ設定しますが、とりあえず再起動。