〜2003年7月中旬〜
Changes: Fixes were made for security issues (cve.mitre.org: CAN-2003-0192, CAN-2003-0253, CAN-2003-0254 and VU#379828). Other bugs were fixed. Feature enhancements were added.
configure時に--enable-switchをつけるとswitch-caseが使えるようになった。 caseには正規表現も指定できる。
% cat switch.awk BEGIN { switch (i) { case /foo/: print "foo" } } % gawk -f switch.awk % gawk -v i=foo -f switch.awk foo
Linux magazine 8月号にgentooがついてきたので、 現在使ってない旧環境の/dev/hdbに入れることにした。 CD-ROMからのブートではなく、現在の環境を使う。
# mount /cdrom # fdisk /dev/hdb # /bootに100M, swapに180M, 残りを/に # mkfs -t ext3 /dev/hdb1 # mkfs -t ext3 /dev/hdb3 # mkswap /dev/hdb2 # swapon /dev/hdb2 # mkdir /mnt/gentoo # mount /dev/hdb3 /mnt/gentoo # mkdir /mnt/gentoo/boot # mount /dev/hdb1 /mnt/gentoo/boot # cd /mnt/gentoo # tar xpfv /cdrom/gentoo/stage1-x86-1.4_rc4.tar.bz2 --bzip2
うっ。ハングしちまった。GCC 3.3でmakeしたカーネル2.4.21の所為かな。 2.4.20で立ち上げて展開してみると問題なし。 じゃカーネル2.4.21をGCC 2.95.3で作り直しとこう。だめだ。 GCCは関係ないな。しかたない。2.4.20で進めよう。
# cp /etc/resolv.conf etc # mount -t proc proc /mnt/gentoo/proc # mkdir tmp/cdrom # mount -o bind /cdrom /mnt/gentoo/tmp/cdrom # chroot /mnt/gentoo /bin/bash # env-update >>> Note: /etc/make.profile/make.defaults isn't available. an 'emerge sync' will probably fix this. >>> Regenerating /etc/ld.so.cache... # source /etc/profile
ここで他のターミナルで/mnt/gentoo/etc/make.confを編集。
CHOST="i586-pc-linux-gnu" CFLAGS="-march=i586 -O3 -pipe" CXXFLAGS="${CFLAGS}" GENTOO_MIRRORS="http://mirror.gentoo.gr.jp/ ${GENTOO_MIRRORS}" SYNC="rsync://rsync.jp.gentoo.org/gentoo-portage/"
とした。
# emerge sync # cp -r /tmp/cdrom/distfiles/* /usr/portage/distfiles/ # cd /usr/portage # time scripts/bootstrap.sh
さてどのくらい時間がかかるか?一晩放っておこう。
昼を過ぎても終わる気配がない。stage1から始めるのは無謀だった。 stage3からにしよう。mkfsしてやり直し。
# mkfs -t ext3 /dev/hdb1 # mkfs -t ext3 /dev/hdb3 # mount /dev/hdb3 /mnt/gentoo # mkdir /mnt/gentoo/boot # mount /dev/hdb1 /mnt/gentoo/boot # cd /mnt/gentoo # tar xpfv /cdrom/gentoo/stage3-x86-1.4_rc4.tar.bz2 --bzip2 # vi /mnt/gentoo/etc/make.conf # chroot /mnt/gentoo /bin/bash # ln -sf /usr/share/zoneinfo/Japan /etc/localtime # env-update # source /etc/profile # emerge sync # emerge app-admin/sysklogd # rc-update add sysklogd default # emerge sys-apps/fcron # rc-update add fcron defaults
ついでに最新にしとこう。
# export CONFIG_PROTECT="-* /etc/make.conf" # emerge -u system
これも時間がかかるなあ。先にkernelを作っとけばよかったか。
昨日のemerge -u gentooの続き。 今日はdb-3.2.9, openssl-0.9.6j, opnessh-3.6.1p2だ。 って、どう考えても今の環境よりグレードダウンしてる。 しかも、emergeに全然魅力を感じないっていうか、 おれにconfigureを実行させろというか、やっぱ向いてない?
emerge sys-kernel/gentoo-sourcesでカーネルのソースを取ってきた。 いやー、すごいパッチの量だ。これだけでも価値があるな。
カーネルをmakeしてたらyaccがないと言われた。 emerge yaccしてみる。1.9.1ってことはbyaccか。
ipt_realm.c:29: structure has no member named `tclassid'
うーむ。調子に乗って要らないものまでモジュールにしてみたけど削ることにしよう。
氷らせ生茶をこおらせてはいけないならしい。
カーネルをmakeしたので、とりあえず立ち上げてみる。 grubはすでに使っているので、
default saved timeout = 5 splashimage=(hd1,0)/boot/grub/splash.xpm.gz title hdc plamo 3.0 kernel (hd2,0)/vmlinuz root=/dev/hdc2 ro savedefault title hdb gentoo kernel (hd1,0)/vmlinuz root=/dev/hdb3 ro savedefault
てな感じで用意した。おぉ、ちゃんと立ち上がるね。 でも、/etc/fstabを書き換えるのを忘れてた。ext3にしなくちゃ。
ほぉ。/bootはmountしないのか。 確かにセキュリティ的にはそうしたほうがよさそうだけど、 カーネルをupdateする時にmountし忘れてはまりそうだな。
これが追加されたのはいいけど、コンパイルされない。 MANIFESTとMakefileとの関係がないから、 Makefileが更新されないんだな。 ext/extmk.rbで見るべきか?
というわけで、ネットワーク。 /etc/conf.d/netで
iface_eth0="dhcp"
を活かし、/etc/modules.d/aliasに
alias eth0 8139too
を追加、起動時に立ち上がるように
# rc-update add net.eth0 default
を実行。eth1側は/etc/conf.d/netに
iface_eth1="192.168.1.1 broadcast 192.168.1.255 netmask 255.255.255.0"
を追加、/etc/modules.d/aliasに
alias eth1 3c503 options eth1 irq=9 io=0x300
を追加、
cp /etc/init.d/net.eth{0,1}
して
# rc-update add net.eth1 default
を実行。これでやっとgentooで立ち上げて全部できるようになったかな。 でもXを入れるまでは、Plamoからアクセスしよう。
向いの中華料理屋がいつのまにかお好み焼き屋になっていた。 なるほど。今日は大安か。
90度回転問題は直った。でも、豆腐になるフォントがあるなあ。
Xを入れよう。emerge xfreeでいいわけか。 今度は寝てる間に終わっていて欲しいもんだが。
xmhとか要らないんだけどなあ。 まさかもう一晩かかるとは。
なぜか「認証後にクライアントを偽装」という権利がないと \\.\vmx86にアクセスできないというエラーになって立ち上がらない。 前にインストールしたときはそんな設定した覚えはないんだけど。 てゆか、なんだその権利は?
emerge xfreeには28時間かかった。 emerge syncしたらbinutils, gcc, glibcが更新されてる。 やっぱ富豪なマシンじゃないとだめだな。