history

青木日記 RSS

<前の日 | この月 | 次の日>

2002-11-23

ひらがな問題

たださんの名前は確かにウケが取れそう……。 「ただただ」のあたりが。御両親は何を思って付けたのでしょう。

すみません……「ず」だと思ってました。 そうかあ。言われてみれば「積む」の積なんだから「つ」なんですね。

そいえばぼくの名前にも読みでは問題がありました。 峰郎と漢字で書くと必ず「みねお」と読まれてしまうんです。 うちの親も、 もうちょっと読みやすい (ついでに発音しやすい) 名前にしてくれればいいのにな。

ツッコミワー

ていうか Google、タイミングよすぎ!

(14:26)

今日のコンパイル

いいかげん ncurses が古すぎるので 3.0 を 5.3 にアップデート。 あんまし深く考えずに

~/s/src/ncurses-5.3 % CFLAGS='-pipe -O2' ./configure --prefix=/usr --with-shared --with-normal --with-debug --with-libtool &> log.conf && make &> log.make && echo OK

としてみた。んで

~/s/src/ncurses-5.3 % make DESTDIR=~/tmp/ncurses install

でインストールイメージを確認して、インストール、テスト。大丈夫そうだ。

しかし下線パラパラ現象は収まらない。端末の桁が狭いと特に酷い。 また rxvt より kterm のほうが状態が悪い。 ncurses を上げたら直るかと思ったんだが、外れたか。困った。

(14:27)

あぱっち!

fnmatch.h なんてヘッダファイルを勝手にインストールするんじゃない! busybox がコンパイル通らないと思ったらこんなことかよ。 強制的に ap-fnmatch.h に改名の刑。

(14:28)

glibc 2.2.5のコンパイル

なんで busybox なんてコンパイルしだしたかと言えばこれのためだ。 思うところあって突然 glibc をコンパイルすることにした。 現在の環境は glibc 2.1.2 なので make install だけでいいらしい。

まず、make が 3.78.1 だったのでこれを 3.80 にアップデートしておく。 binutils は 2.13 なので大丈夫だろう。gcc は 2.95.3 を使用。 んでコンパイルだ。このへんは危険は全くない。

~/s/obj/glibc-2.2.5 % CC='gcc -pipe' CFLAGS=-O2 ~/s/src/glibc-2.2.5/configure --prefix=/usr --enable-add-ons --enable-kernel=2.2.14 &> log.conf
~/s/obj/glibc-2.2.5 % vi Makefile    # PARALLELMFLAGS = -j 4 にしてみる
~/s/obj/glibc-2.2.5 % make &> log.make
~/s/obj/glibc-2.2.5 % make check

P3 866MHz、256MB で 20 分くらい。やっぱ HDD が速いと早いな。 make check は optional とか書いてあるけど、必ずやっとくべきでしょう。

こっからが勝負だ。 わたなべさんの日記 を参考にしてまずは chroot で試す。

~/s/obj/glibc-2.2.5 % make install_root=$HOME/tmp/glibc install localedata/install-locales
~/s/obj/glibc-2.2.5 % cd ~/tmp/glibc
~/tmp/glibc % ls
etc   lib   sbin  usr
~/tmp/glibc % mkdir bin
~/tmp/glibc % cp /bin/bash bin/bash
~/tmp/glibc % sudo chroot ~/tmp/glibc /bin/bash
bash-2.05#
bash-2.05# ls
bash: ls: command not found
bash-2.05# echo *
bin etc lib sbin usr

大丈夫っぽい。

失敗するとまず間違いなく復活できないので、重要データはバックアップしておく。 現在起動中のプロセスは元のライブラリを使い続けるので動作可能だが、 新しいプロセスは新しい libc で動くので失敗すると何もできない。 su もできなくなるから予備の rxvt で su しておく。 またもちろんコマンド類もダイナミックリンクしてるのは全滅するから スタティックリンクしておかないとまずい。ここで busybox が役に立つわけだ。 当然スタティックにコンパイルしないとだめね。

% ldd /bin/busybox
        statically linked (ELF)

ここまでやったら make install ゴー!

~/s/obj/glibc-2.2.5 % su
~/s/obj/glibc-2.2.5 # LANGUAGE=C LC_ALL=C make install localedata/install-locales

次がいつまでたっても書き込まれなかったら失敗したと思ってください。まる。

(14:47)

戦闘結果報告

zsh があぼーん。 gcc をはじめとしてコンパイルツールが生きていてくれたので命拾いしたな。 即座に zsh をリコンパイルする。あ、sudo も大丈夫だ。

また、わたなべさんの日記にあったのと同じく man と cat が SEGV する。 これもリコンパイルしないとだめそうだ。

w3m は大丈夫だなあ。Boehm GC のバージョンの違いだろうか。

このメールを書いてるのが Emacs なのでこれも OK。 でもってこのメールが送れたら imget == Perl も OK。

(15:36)

氏に至る病

あのさー。

ガスコンロの火がうまくつかなかったときに、

「やばいっ、glibc のインストール失敗したか!」

……と思ってしまったわたしは逝ってよしですか?

(15:42)

本日のツッコミ(全3件) [ツッコミを入れる]
ただただし (2002-11-23 17:14)

なにも考えていなかったらしいです >名前
天然ですな。

たむら (2002-11-25 00:51)

夜中にひとりで藁ってしまった>ガスコンロ。
ちなみに、私の父親の名前も「ただし」だったりします(実話)

kjana (2002-11-25 01:42)

TERM=vt100 とかして状況が改善されるなら terminfo/termcap entry が
おかしいということで納得してみるとか << ちっとも解決してません.

名前
メールアドレス

<前の日 | この月 | 次の日>
2002|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|04|05|06|09|10|
2009|07|
2010|09|

Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved. LIRS