まさかブロックローカル変数の仕様をどこにも書いてないとは思わなかったよ!!!!
もちろん最初はちゃんと書いてあったんだけども、 どこかに移動しようとして消したままどこにも追加してなかったらしい。 出版前に見付かってよかった。
(07:48)
バイナリを cat してしまって端末がグチャグチャに なったときは (たいてい) reset で元に戻せる。
なぜかこれだけは何度覚えても忘れてしまうのであった。 alias reset-terminal=reset としておくことにしよう。
(09:14)
すっぱい米対策第一弾。匂いには匂いで勝負だ。 納豆をかけてみた。
……うっ、味が混ざる……。納豆だけなら大丈夫なのに、 御飯のすっぱい匂いが混じると吐きそう。失敗だ。
次回 (の炊飯) に続く。
(11:14)
GHC のコンパイルが通らない……
のはあたりまえで、ghc をコンパイルするのには ghc が必要という罠。 しかも Linux のバイナリは Redhat しか置いてないし。困ったな。
ぎゃー!
ぐおー!
にゃー!
うーん……どうやら .hc という中間ファイルを用意して gcc でコンパイルするのが 正統らしい。めんどくさいな。hugs (インタプリタ) で ghc を 動かして ghc 自体をビルド……とかできないかな。そっちのほうが面倒か。
やめましょうか。やめましょうね。やめました。
ところで GHC って「○○ランキング第一位!」な化粧品メーカー?
それは DHC だろ! なんてツッコんでくれる親切な人はいないと思うので自分でツッコんでおこう。
Redhat だけっていうのは嘘でした。 glibc 2.2 一般向けのがあります。 あと Debian は apt できるので置いてないだけ。 FreeBSD も pkg_add できるので置いてないだけ。
ports は pkg_add でバイナリを入れといてコンパイルするんですかねえ。 OpenBSD は pkg_add してから make しろと書いてありました。 FreeBSD はどうなんだろう。
(15:04)
「すとら」に決まってるじゃないですか。
「ぷとら」に決まってるじゃないですか。
昨日書いた 550 枚ってのはおかしいな。一枚で左右見開き 2 ページ分 だから、225 枚くらいのはずだ。それでこの厚さかよ。
100 ページもやってないのに早くも飽き始めた。けっこう間違いが多くて泣ける。 第一章「Ruby言語ミニマム」はかなり徹底的にチェックしたはずなのにこの有様だ。
(03:08)
そういえば Ruby Hacking Guide って企画の初期段階では 「C 言語の本」だったんですよ。それがどうして ruby の ソースコードを読む本に化けたかと言うと……
まあ、そのへんを話すと悪口「だけ」になるのでやめておきましょうか。
(14:13)
ダウンロードしました。CD-R に焼きました。 Me にインストールしました。Ruby をコンパイルしました。
gcc -shared -s -Wl,--out-implib=libcygwin-ruby17.dll.a ruby.def array.o bignum.o class.o compar.o dir.o dln.o enum.o error.o eval.o file.o gc.o hash.o inits.o i o.o marshal.o math.o numeric.o object.o pack.o parse.o process.o prec.o random.o range.o re.o regex.o ruby.o signal.o sprintf.o st.o string.o struct.o time.o ut il.o variable.o version.o flock.o strftime.o dmyext.o cygwin-ruby17.res.o -lcry pt -o cygwin-ruby17.dll Creating library file: libcygwin-ruby17.dll.a compiling Win32API /cygdrive/c/aamine/s/ruby/lib/mkmf.rb:101: [BUG] Segmentation fault ruby 1.7.3 (2002-09-11) [i386-cygwin] Signal 6 make: *** [all] Error 134
Σ(T∀T)
(15:28)
■ なひ [そうなんですよGUI。なひは未だにあのGUIで「run foo.rb」する方法がわかりません。かわりに「gdb -nw」。。。]
甘かった。Win32API のコンパイルに入ったまんま暴走してるよぅ。
何がいけないんだろう。この ruby は Ruby Hacking Guide 用に かなりテストした奴だから、コンパイルできないとすれば まず間違いなく Cygwin のせいだ。gcc 3.2 かなあ。 とりあえず gcc 2.95 を試してみよう。
だめだった。今度は Cygwin DLL のバージョンを下げてみよう。
Me だと configure が遅くて嫌だ。 いちいちタイトルバーにコマンド名出すな!
なんなんでしょうねあれは。 人に断りもなくウィンドウを出すとはふてえ野郎です。
あ、かと言って「新しいウィンドウを作成します。よろしいですか? Y/N」 みたいなダイアログを出されてもそれはそれで許し難いな。
gdb なら gdb らしく黙ってプロンプトを出しやれがれ。
(16:00)
三回のブルースクリーンを経て何とかインストールに成功。IDEケーブルがいかれてた。ついでにVisualStudioも入れとこっと。
Cygwin DLLのバージョンを下げたと思ったのに下がっていなかったようだ。下げたら状況が好転した(ただのSEGVに)。
(gdb) bt #0 0xbff6a767 in _libuser32_a_iname () #1 0x004a2b20 in cygwin_premain2 () #2 0xbff85f9c in _libuser32_a_iname () #3 0x61083ae6 in _libuser32_a_iname () #4 0x61083b30 in _libuser32_a_iname () #5 0x61082989 in _libuser32_a_iname () #6 0x610852c5 in _libuser32_a_iname () #7 0x61085409 in _libuser32_a_iname () #8 0x004a06f0 in __register_frame_info_bases () #9 0x004a0738 in __register_frame_info () #10 0x0040105f in __do_frame_init () #11 0x61005ed5 in _libuser32_a_iname () #12 0x61007a1b in _libuser32_a_iname () #13 0x004010ae in main (argc=4, argv=0xb210d8, envp=0xb20288) at main.c:40 #14 0x61007549 in _libuser32_a_iname () #15 0x6100780d in _libuser32_a_iname () #16 0x004a1ea2 in cygwin_crt0 () #17 0x0040103c in mainCRTStartup () #18 0xbff7bb67 in _libuser32_a_iname () #19 0xbff7ba19 in _libuser32_a_iname () #20 0xbff7a3d2 in _libuser32_a_iname () Cannot access memory at address 0x83651fecうーん…
Cygwin DLL を 1.3.10 まで落としたら何事もなく通った! よかったよかった。これをデフォルトにしておこう。 つーか、unstable なのを使うほうが悪いよ…… > おれ
(09:25)
そうなんですよねー。あれだけビルドテストやったのにいまさら落ちるなんて。 いったい誰でしょうね、Me は問題ないなんて言ったのは。
Cygwin/98(gcc2) たむらさん ○ Cygwin/98(gcc3) たむらさん ○ Cygwin/Me あおき ○ Cygwin/NT4(gcc2) たむらさん ○ Cygwin/NT4(gcc3) たむらさん ○ Cygwin/2000 あおき ○
ぐはっ (吐血)
えー……。真面目に原因を考えると、どうやらぼくの使ってた ring.asahi-net.ne.jp のミラーが遅いみたいで、まだ 1.3.10 が 残っているのです。それで偶然通ってしまったようですね。 今回のは progency.com から取ったのでかなり新しいですから。
(10:20)
■ たむら [Cygwin の miner は奇数しかないので、いつだって unstable さ♪]
夕飯はコーンポタージュ、と言われて考えたのだけど、 ポタージュってなんですかね。とろとろであつあつなやつ、 というのはわかるんですが、なんというかね、 ポタージュがポタージュであるための必要十分条件が知りたいのですよ。
ということで調べた。 http://gourmet.yahoo.co.jp/gourmet/recipes/docs/2/5/1/1239.html
「ポタージュ」のもとはフランス語 potage で本来の意味はスープの総称。 日本で「ポタージュ」と言うところの「あつあつとろとろ」 な奴は potage lie (thick soup) と言うそうです。
(18:02)
なぜか突然パソコンの時計が一時間遅れになっていた。 不思議だ。
# date --set '2002-11-12 12:20:00'
で修正。(この --set がねえ、なかなかわかんなくてねえ。)
(12:23)
あ、ime.nu 経由のアクセスがあるね。2ch か。
な〜んてわざとらしく気付いてみたりして。 昨日 2ch 眺めてたからリンク張られてるのはとっくに知ってるさ。 2ch 見てからこっちの referer 見て確認したのさ。 だって一個も来てなかったら悲しいからねっ (その発想が既に悲しいね)。
それはともあれ、あちこちで RHG の発売日を気にしてくださってる ようなのは有り難いことです。いまのところの予定では 12/10 に発売となってます。 正式に決まったら他の情報含めて ruby-list とココに流しますので、よろしくー。
ようやく金が入って極貧生活から脱出したわたしはさっそく本屋に行くところです。 本と言えば池袋ジュンク堂です。Wiki Way 買ったら yomoyomo さんが 横から出てきてサインしてくれたりする可能性もなきにしもあらずですよ! 遭遇確率を上げるため、買うときはできるだけ見せびらかしながらレジまで 持っていこうと思います。
(14:04)
入金されてないじゃん!
おかげでなんにも買えませんでした。 『Solaris Internal』も 『プログラミング言語理論への招待』も 『Inside COM+』も 『岩波情報講座 3 アルゴリズムとデータ構造』も 『プログラミング言語の概念と構造』も 『TCP/IP illustrated』も 『Wiki Way』も、 高い本はなーんも買えませんでした。 あとシェルと UNIX と SCSI と IDE と組み込みプログラミングの本も欲しかったのに! 20 冊くらいレジに積み上げてレジのおねいさんをビビらせる予定だったのに! ムキーッ。
ムカついたんで吉野屋で特盛り食べてやろうと思ったら改装休業してやがるし。 意地で東池袋まで歩いて食べに行っててきました。
(19:03)
ちょっとでも欲しい本は即座に買うのです。 「いずれ買う」という予感がするものは今買っても人生の総支出入は変わりません!
というのが表向きの理由で、裏の理由は情報管理がらみです。 きのう 2ch 見てたら「情報整理スタイルを晒せ」とかなんとかいう スレがあって、その内容は「結局は紙」「ホワイトボードとスキャナ」 「ChangeLog」「Wiki」あたりがメインのようでした。 この中で Wiki はあまり真面目に検証したことがないので、 情報を入れとくのもいいかなと思ったんです。
ぼくの場合はそもそもまとめるほどの情報を持ってないのでこういうのは 考えるだけ無駄なんですが、仕組みを作ること自体が面白いのでついやってしまいます。 ChangeLog もやってます。 make の方法とかメモしとくとあとから探しやすいのがいいですね。 超整理法もやってます。 あれはパーツのマニュアルとか論文がすぐに見付かって便利です。
(19:33)
あ、でも結局主流はやっぱり紙です。ぼくの場合は外出がほぼ無いに等しく、 しかも外出する場合も情報を持っていく必要がまずないという特殊事情があるので、 B5 のキャンパスノートを使っています。
ルールは一つだけで、左の隅に日付、ページ上の欄外に年を入れること。 前は少しは分類したほうがいいだろうと思ってノートをいくつか作ってましたが、 無駄な努力だとわかったので、プログラムのアイデアも本のまとめも日記も 全部まぜて書いてます。
紙だと書いた場所とか回りの様子、前後のコンテキストなどがあるため 記憶に残りやすく、検索は意外に簡単です。あちこちに散らばってれば 大変ですが、ノートのどこかにあるとわかってればたいしたことはありません。
ノートにするのは、ページをなくすのを防ぐためと、時間順を強制するため。 あと、後から「整理」できないようにするためです。ルーズリーフなんかを 使ってると種類別に分けて整理したい欲求に耐えられなくなってしまいます。
(19:48)
なんか今日も時計が一時間ずれてる。 そうか…… date --set で合わせられるのはシステムクロックだけで、 ハードウェアクロックは別なのね……。だめだ、基本がなってねえよ俺。
# date --set '2002-11-15 21:15:00' # hwclock --systohc
で、今度こそオッケー?
(21:29)
二回投げたがまだエコーが帰ってこない。 何か起きているのだろうか。 もう少し待ってみよう。
やまだあきらさんのツッコミで初めて予約ページが できていることを知ったわたしであった。 遅ればせながらデータシートでも。
書名『Rubyソースコード完全解説』
まつもとゆきひろ監修、青木峰郎著
B5変 552 ページ (増えた)、添付 CD-ROM 一枚
定価 4980 円
ISBN 4-8443-1721-0
12/10 発売予定
発売日はこないだも遅くなったばっかりなのであんまり当てにしないでください……。 段階としては、今日第二校を戻したとこで、あとはほとんど印刷所のお仕事になります。
あ、ちなみに今回は TeX 入稿なので印刷所が直接 TeX をいじってます。 印刷所ってのは図版イメージだけ受け取って印刷するだけ、というイメージ だったんですが、最近の印刷所は TeX とか EWB の作成までやってくれるところも あるんですね。
それなら TeX ファイルをそのまま渡してくれれば直接修正できるんですけど、 そういうのはダメらしいです。きっと門外不出のマクロとかがあるに違いありません。
それと初刷はかなり部数が少ないのであんまり本屋には流さない (流せない) らしいです。 買うならオンライン書店のほうがいいかもしれません。
表紙と帯もできましたー。 でも一週間前までは出しちゃいけないらしいのでまだ秘密。
(23:33)
むー、なるほど。日付にリンクしてないとリンク元が出ないのですね。 せっかくだから mod_rewrite とともに試してみました。こうかな。
RewriteEngine on RewriteRule ^/~aamine/ja/tdiary/([0-9]+).html /home/aamine/public_html/ja/tdiary/index.rb?date=$1
……動かない。
そうか、わかった! ここって /~aamine/ja/tdiary/ にあるから、 RewriteRule より UserDir が優先されるんだ。 mod_userdir.so をロードしないようにしたらうまくいく。 うわぁ、これはめんどくさいなあ。どうしよう。
悩んだあげく以下のようにして解決。
# /~aamine/ja/tdiary/.htaccessで Options +ExecCGI +FollowSymLinks RewriteEngine on RewriteRule ([0-9]+).html /~aamine/ja/tdiary/?date=$1
次のようにするとだめだった。
RewriteEngine on RewriteRule ([0-9]+).html index.rb?date=$1 これではだめ # RewriteRule ([0-9]+).html ./?date=$1 これもだめ # RewriteRule ([0-9]+).html ./index.rb?date=$1 これもだめ
これだと 404 になる。なんでだろう?
あー、ログ見たらなんとなくわかった。
# error.log [Sun Nov 17 02:03:05 2002] [error] [client 192.168.1.33] File does not exist: /var/www/tree/home/aamine/public_html/ja/tdiary/index.rb
となってしまうのだな。「~」を入れとくとホームディレクトリに 再展開されてうまくいくみたいだ。
(02:19)
■ たかはし [私のところにも届いてません>ruby-eng]
■
あおき [高橋さんのとこも来てませんかー。
とりあえず ruby-list に避難しよっかな。]
■
ただただし [URLをYYYYMMDD.html形式にすると、リンク元が増えます。
see: dot.htaccess & misc/plugin/html_anchor.rb]
■
ゆうき [RewriteRuleとFile does not exist:
をキーワードにググってここにたどり着きました。
ここの情報のおかげで悩んでいた問題が解決できました!
~入れてホームディレクトリに再展開とは。すばらしいです。
ありがとうございました!]
http://kitaj.no-ip.com/tdiary/20021117.html#p04
やっぱり 4980 円は高いですよねえ。 新渡辺稲造さんがいなくなるんですから。 はあ……。
できるだけ下げてねって言ったんですが、最近本が売れないそうで、 値段を下げるのは無理なんだそうです。 しかも今回のように初刷が x5xx 部だと余計下げにくいと。 最初は「○万部売るよー」、とか言ってたくせに初刷はこれだもんなあ。
んー、しかし初刷 xx00 部か。全部売れたら 2000 人以上の人が 読んでくれるわけだから、かなり凄いような気がする。 そんなに売れるのだろうか。不安になってきた。
(04:47)
買ってくださるというかたが結構いらっしゃって有り難い限りです。
んで一人で騒ぎまくった CD-ROM ですが、スケジュールに無理矢理つっこんでしまった そうです。いやいや、05:00 までかけて修正版を焼いた甲斐がありました (そのドサクサに紛れて既に見付かってた間違いを修正したのは編集の人には秘密だ)。 というわけで予定通り 12/10 発売できそうです。お騒がせしました。 校正のほうも今日で終了して、あとは刷るだけ! 輪転機ファイト! (違)
(10:55)
今日こそはジュンク堂で本を買うぜ! 買うゼ 買うゼ しこたま買うゼー!
なぜにスタパ調? ところで「スタパ」ってなんですかね? 注文システムが難しい流行りのコーヒー屋さんのことですか?
それはスターバックスだろ。とツッコんでくれる心優しい ツッコミワー (ツッコむ人、の意) はいないものでしょうか。 いないでしょうね。いないに決まってます。 世間の目が冷たく感じる今日このごろです。
実際、外は寒いしね……。 12 月下旬並ですって? 聞いた、奥様ッ?
なんでこんなにテンション高いのか自分でもよくわかりませんが 連想が働く働く、はたらくじどうしゃ、きゅうきゅうしゃしゅつどう! ってなもんですよ。
そういえば (と、また全然関係ない話に飛ぶらしい)、 「隣の奥様もおっしゃるし……」なんていう会話は火曜サスペンスの中だけで 行われるものと思ってたんですが、現実にやってる人がいるんですね。 これは家庭教師のバイトをしている、某青木の妹の話なんですけど。 家庭教師先の母親曰く、
「わたしもね、○○ちゃんもまだ中学生だし、 家庭教師は必要ないと思うんですけどね、隣の奥様がね、 『○○ちゃんは進路はどうなさるのかしら、家庭教師とかはおつけになってらっしゃる?』 っておっしゃるし、父親も父親で『学校はいいところに行かせてやりなさい』 って (以下、うざいので略)」
だ、そうですよ! 大変ですね。家庭教師も。 まあ、あんなんで時給 3000 だのなんだの取るのは詐欺には変わりないですが。 ただ、家庭教師ってあんまり長時間はやれないので、 金をたくさん稼ぐにはコンビニバイトとかのほうがいいみたいです。 家庭教師は前もって準備する時間も必要だし。
コンビニバイトでできるだけ稼ぐには、やっぱ夜間に入るべきです。 夜間はだいたい時間が長いし (10時間)、時給 20% 増しですから。 休日の夜間ならさらに上がります。あと、行事のある日もいいですよー。 正月とかクリスマスとかバレンタインとか。 ぼくはそういう日を狙って入りまくってましたねえ。
……言いたいことはわかってるんで何も言わなくていいっす! クリスマスやバレンタインの夜にバイトしまくってていいのかってんでしょ! えー、人として間違ってますよ! けっ!
というわけで、なんかムカついてきたので唐突に連想ゲームを終わります。 ここまで読んでくれた方はかなり忍耐力があると見ました。
(11:37)
■
MoonWolf [RHG予約しました〜
打ち上げやるなら、そこでサインもらおうかな(w]
■
あおき [打ち上げは当然やりますよ!
放っておいても某氏がやるでしょうしね。]
■
たむら [こういう時住んでる場所がなぁ〜って思う>RHG打ち上げ。
それはそうと私もコンビニバイト学生の時してました。ええ、盆・正月は稼ぎ時ですし、夜中のワックスがけとか有線のチャンネル好きなのにして乾く時間待ちにビール飲んでたりしてた。]
■
MoonWolf [某氏抜きの打ち上げはありませんか?
小一時間問い詰めるだけで終始しそうなので……]
■ ただただし [家庭教師のバイトで準備なんてしたことない……]
■
たむら [やめなさいって(藁、ムダだから>小一時間
ApacheにはSSLの認証局必要ないなんて、読んでて目が点<読むなよ]
■ ひだか [ろ〜そん・C・S・ほっとすて〜しょ〜ん♪<12月31日〜1月2日まで3連勤で年明け早々熱を出して寝込んだひと]
■ koyasu [とーとつなんですが、ツッコミワーよりもツッコミストの方が語呂がいいと思いませんか?]
■ ただただし [さんせー >ツッコミスト]
■ Yuya [サイン欲しいっ!福岡から飛行機でひとっ飛びして、参加したいくらいです。<打ち上げ]
カテキター。
『プログラミング言語の概念と構造』新装版 (Programming Languages - Concepts and Constructs)、 Ravi Sethi著、神林靖訳、ピアソン・エデュケーション、2002
くくく、買ったぜー Sethi の本。 ML だの Prolog だの出てくる本は最近あんまりないので貴重だ。 小さいくせに今回買った中で一番高い (5600 円)。
『コンピュータの構成と設計』第二版 上・下 (Computer Organization & Design)、 David A.Patterson/John L.Hennessy共著、成田光影訳、日経BP社、1999
あ、でも合計ならこっちのほうが高いや。4400 + 4800 = 9200 円。 ハードウェアの世界では有名な本らしい。第三版の原書があったので そっちにしようかと思ったけども、17000 円という極悪な値段が付いていたので あきらめた。それにこっちは色付きだったし……(弱)
『ソフトウェア職人気質』、 Pete McBreen著、村上雅章訳、ピアソン・エデュケーション、2002
旬の本だし。(「本だし」を続けて読んではならない)
『ラショナル統一プロセス入門』第二版 (The Rational Unified Process: An Introduction, Second Edition) Philippe Kruchten著、藤井拓監訳、日本ラショナルソフトウェア(株)訳、2001
これは石塚さんは関ってないのかな? RUP の本。 開発プロセスつながりで購入。
『Javaバーチャルマシン』、 Jon Meyer/Troy Downing共著、鷲見豊訳・編著、
予想外にも今回最大のヒット。面白かった。 Java のクラスファイルを解析したり VM バイトコードを逆アセンブルしたりして VM の構造を解説していく本。訳本かと思ったら訳の人が加筆・再構成しているようだ。 そのため非常に読みやすい。
『やさしいJava』第二版、高橋麻奈著、ソフトバンク、2002
……けっ!
総額 30540 円也。あと 10 万円分は欲しかった。特にアスキーのデバッガ本が 欲しかったのに『やさしいJava』ごときのせいで買えなかったのは屈辱の極みである。
(01:20)
それにつけても思うのは、 Ruby 界にはなんと平仮名の名前の方が多いことか、ってことですね。 昨日のツッコミの名前欄がすごいよー。
ちなみにわたしは C マガの「あおきみねろうさんによる……」 という記述があまりに間延びしてることにショックを受け、 漢字表記に鞍替えしました。メールの頭書きだけは青木@横浜さんと 区別が付かなくなりそうなのでまだ平仮名にしてますけどね。 それとも「青木峰郎です。」にしようかなあ。
(01:21)
たださんの名前は確かにウケが取れそう……。 「ただただ」のあたりが。御両親は何を思って付けたのでしょう。
すみません……「ず」だと思ってました。 そうかあ。言われてみれば「積む」の積なんだから「つ」なんですね。
そいえばぼくの名前にも読みでは問題がありました。 峰郎と漢字で書くと必ず「みねお」と読まれてしまうんです。 うちの親も、 もうちょっと読みやすい (ついでに発音しやすい) 名前にしてくれればいいのにな。
いいかげん 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)
なんで 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)
たむらさんが東京じゃないってのは想定してなかった……。
いや、こないだからずっと考えてたんですよね。 RHG オフではほとんどの方に会えるかなーと錯覚してたんですが、 当てが外れました。
Yuya さんも東京じゃないんですか。 この分だと他にも東京在住でない人はたくさんいそうですね。
(18:15)
なななななななななにぃーーー!
スクウェアとエニックスが合併?! なんじゃそりゃ! なめてんのか! 2ch のネタじゃないのかよ……信じられない……信じられない…… DQ と FF で育ってきたわたしはいったいどうすればいいのですか?
……ま、いっか。もう FF は買わないし。 DQ も 7 で終わりにしよう。 ああ、こうして一つの時代が終わるのか (大袈裟)。
(00:30)
■ kjana [あきらめて nhc98 あたりにしとくとか.
ports ではどうしてましたっけ?]
■ たむら [わぁい、えとせとらだぁ♪]
■ kjana [FreeBSD の ports では bootstrap compiler を fetch してますね.]
■ kadu [端末がくずれてるときは stty sane とか echo C-v Esc c とかも。]