〜2002年3月中旬〜
勢いで注文してみたが、DBIはほとんどというか全く縁がないのであった。
次はネットワークの設定だ。ホスト側ではPPxPを使ってるのでTUN/TAPはある。 なんか/dev/net/tunを使うようなので、あらかじめ
% sudo mkdir /dev/net % sudo mknod /dev/net/tun c 10 200
とした。あとは Setting up the network の通り。
% sudo tunctl uid % sudo ifconfig tap0 192.168.0.254 % linux eth0=tuntap,tap0,,192.168.0.254 <snip> # ifconfig lo 127.0.0.1 # ifconfig eth0 192.168.0.1 # route add default gw 192.168.0.254
でつながった。ちゃんとwww.ruby-lang.orgにもアクセスできてるなあ。
ftpで転送速度を計ってみようと思ったらtomrtbtにはftpはない。 というわけでdebian2.2のroot_fsで試す。 あ、VCが別xtermが立ち上がった。これ、ちょっと欝陶しいかも。
ftp> mget linux-2.4.18.tar.bz2 local: linux-2.4.18.tar.bz2 remote: linux-2.4.18.tar.bz2 200 PORT command successful. 150 Opening BINARY mode data connection for linux-2.4.18.tar.bz2 (24161675 bytes). 226 Transfer complete. 24161675 bytes received in 49.61 secs (475.7 kB/s)
あ、やっぱ/dev/nullに書かないといけないか。
ftp> get linux-2.4.18.tar.bz2 /dev/null local: /dev/null remote: linux-2.4.18.tar.bz2 200 PORT command successful. 150 Opening BINARY mode data connection for linux-2.4.18.tar.bz2 (24161675 bytes). 226 Transfer complete. 24161675 bytes received in 49.77 secs (474.1 kB/s)
なんと変わらない。getしたファイルをcpしてみる。
usermode:/tmp# time cp linux-2.4.18.tar.bz2 dummy real 1m0.494s user 0m0.150s sys 0m10.700s
なんとftpより遅い。一体どういうこと?
ホスト側でftp localhostだとこんなもん。
24161675 bytes received in 17.7 secs (1.3e+03 Kbytes/sec)
1/3ぐらいの速度。
ま、shared libraryを入れ換えるだけなので簡単だ。
% ./configure --prefix=/usr -s % sudo make install
てな感じ。
Ruby Binaries 方面は結構staticにlinkされてるのがあるので、更新しないとまずいな。 Ruby/zlibとRuby/GDと、あ、xdeltaもそうだな。 あと何だろう?
double freeの脆弱性に関しては今月号のUNIX USERにも載っている。
こういう時のためにrsyncは こう していたのさ。 というのは嘘で、 単に同梱されてるzlib 1.1.2よりも新しいのを使いたかっただけなんだが。 それにしてもrsync-2.5.3-compression-broken.tar.gzってなぜそんな名前? あ、まだzlib 1.1.3ベースでパッチをあてただけだからか。じゃ、すぐに次が出るか?
自分で作る必要もないので、Cygwinのパッケージをそのままコピーした。 MinGWも GnuWin32 から取ってこよう。 このGnuWin32は昔Cygwinが名乗ってたのとは関係なくて、 単に誰もが思いつく名前をそのまま使っている感じだ。 ベースはMinGWでErnieさんが作ったsupplement packageを充実させてlibcとして作り上げ、 いろんなものをmakeしているようだ。このlibcもほとんどがdummy。
やはりすぐ出た。makeするとwarningだらけなんだけど、 -Wallはいったい何のため?
% make ZLIBOBJ= LIBS='-lz -lpopt -lresolv'
どうも最近poptが人気だね。
2.50が必要になった 原因はAC_SYS_LARGEFILEです。でかいファイル対応。 autoconf 2.53では直にLIBOBJSを使うとエラーになるので、 メッセージに従いAC_LIBOBJを使うようにしました。 autoconf 2.13にはAC_LIBOBJはないけど、 2.50が必須になったので丁度いいというか。
あ、肝心のlarge file対応についてはChangeLogに書いてないのか。
こういうタイミングで出るのは都合がいい。
checking for rb_io_print()... no checking for rb_io_printf()... no checking for rb_io_puts()... no checking for rb_io_addstr()... no
む?mkfm.logを見ると-lrubyになってる。extconf.rbに'ruby'が埋まってるなあ。 なんでCONFIG["LIBRUBYARG"]を使わないんだろう?
こっちも中途半端なSCHED_YIELDが残ってる。 CONFIG_BLK_DEV_INITRDをyesにするとそこが活きるわけで、 たぶんinitrdを使ってないんだろうなあ。
残念ながらImportantだった。
例のあれを借りた。xmmsでそのままプレイする分には全く問題ない。 オーディオケーブル経由だからか? Rippingしてみると所々ノイズが入るwavファイルになった。その程度か。
このCDはコピーコントロールCDです。
COMPACT disc DIGITAL AUDIOのマークはないからCDじゃないんだけど。
ただし、CD-ROMドライブを使ったCDプレイヤーでは再生できません。
と一応書いてある。
BoAとはBeat of Angelの略らしい。
そろそろTestUnitも用意すべきか?
NEWSを読むといろいろ追加機能がある。気になった機能を挙げる。
--only-matching (-o)
マッチした部分だけ表示する。これでsedを使わなくてもいい場面が増える。
--perl-regexp (-P)
え?そんなのあり?と思ったらpcreを使っているのか。
--color
色がつく。defaultでは赤く表示される。
変えたいときは環境変数GREP_COLORで指定する。
強調して緑なら'1;32'のように。LS_COLORSと同じ感じなので、数字の意味は
% dircolors --print-database
を参考にするといい。
例: ifconfigの結果からIPアドレスらしきものを抜き出す
% ifconfig |grep -P -o '\d+\.\d+\.\d+\.\d+' 192.168.1.1 192.168.1.255 255.255.255.0 192.168.1.2 192.168.1.255 255.255.255.0 127.0.0.1 255.0.0.0
perl 5.005_03以上が必須になった。 autom4te-2.53.cacheというディレクトリも勝手に作るし。 要らないよね?後始末してよ。grep 2.5もそのまま配布ファイルに含まれてる。
例のAC_LIBOBJ vs. LIBOBJSというnodeが見つからないのはなぜ? 早速覚えたgrep 2.5の技を使い
% grep -o -P 'Node:.*?, ' /usr/local/info/autoconf.info
としてみたが、特に悪いとも思えない。 あ、Emacsからならちゃんと読める。infoが何か変なのか。
小沢征爾ノリノリだな。オザケンも復活するわけだよ。
ChangeLogを見ると
2001-02-16 Alain Magloire Patch from Isamu Hasegawa, for multibyte support.
とある。ほぉ。そうなのか。では早速実験。 /usr/bin/grepはgrep 2.1で/usr/local/bin/grepがgrep 2.5。
% echo 'スト' | od -tx1 0000000 a5 b9 a5 c8 0a 0000005 % echo '好' | od -tx1 0000000 b9 a5 0a 0000003 % echo 'スト' | /usr/local/bin/grep '好' % echo 'スト' | /usr/bin/grep '好' スト
確かにいけてるようだ。いや好きじゃないんだけどね。 ChangeLogに例として載っていたのだよ。 ということはもちろん'.'も1文字になるわけだ。
% echo 'あいうえお' | /usr/local/bin/grep -o . あ い う え お
ふむ。LANGをCにすればmultibyte supportはoffになる。
% echo 'スト' | LANG=C /usr/local/bin/grep '好' スト
% diff a b diff: %
となんか変だ。これもglibcの影響か?diffutils-2.7をmakeしてみる。
% ./diff a b ./diff: a: No such file or directory ./diff: b: No such file or directory
ちゃんと表示された。やはりそうか。 とかなんとやってると全部入れ換えることになったりして。
って Ruby/DL じゃないのかな?
You don't have permission to access /~auroux_l/ on this server.
の403 Forbiddenなので確認できないんだけど、ex:の例を見るかぎりそんな感じだ。
見直してみると
Foo.class_eval { attr_reader name.delete '@' }
じゃなくて
type.class_eval { attr_reader name.delete '@' }
のほうがいい気がしてきました。Fooという名前を変えたくなるかもしれないので。
ruby-zlib-0.5.1が出たので更新。
お礼のメールが突然来た。 英語のメールはまずspamだと思うので危うく捨てるとこだった。
I was reviewing my posting on Ruby and realized that I fogot to tahnk you on the "installation errors on win2000"
なんかtypoだらけだが、全く身に覚えがない。 Rubyと書いてあるからbladeで"installation errors on win2000"を検索してみたら、 なんと 去年の8月の話 だった。
おれに履歴書を送ってどうする?てゆかフランス語だし。.docだけどvirusではなさそう。 spamでもないよなあ。就職活動?
AC_LIBOBJを使うとautoconf 2.13ではundefinedになる。 AC_DEFUNでRUBY_LIBOBJを定義してこっちを使うようにしても、 LIBOBJSを直接参照することになるのでautconf 2.53でエラーになる。
Q. どっちも満足させるにはどうしたらいい? A. Ruby 1.8が出れば解決します。
ってわけにはいかないよなあ。
autoconf 2.53のautoconf/general.m4では
LIB@&t@OBJS
を使ってる。なんだそれ?@&t@が最終的には消えるってことか? 他にはどこにも使ってないし、よくわからん。
general.m4を眺めたら
m4_pattern_forbid([^LIBOBJS$],
を発見。これで禁止してるわけだ。この後に
m4_pattern_allow([^AS_FLAGS$])
というのがある。じゃ
m4_pattern_allow([^LIBOBJS$])
で強制的に許可できる?あ、LIBOBJSが出てきてしまうからだめだ。 でも正規表現が使えるようだから
m4_pattern_allow([^[L]IBOBJS$])
でどうだろう?字面だけならこれでいける気がする。あ、いけた。 よくあるpsの出力をgrepするときに、grepは除くという技と同じだ。
% ps aux |grep screen watanabe 234 0.0 0.5 2708 720 ttyp3 S Mar19 0:00 screen watanabe 6770 0.0 0.5 2060 764 pts/1 S 00:24 0:00 grep screen % ps aux |grep '[s]creen' watanabe 234 0.0 0.5 2708 720 ttyp3 S Mar19 0:00 screen
あれ?でもautoconf的には[]はquoteじゃなかったっけ? general.m4の他の例を見ると、どうもここではそのままの意味になるようだ。不思議。
で、autoconf 2.13でこれを通すと、今度はそのまま
m4_pattern_allow([^[L]IBOBJS$])
が残るという問題が。うーむ。
: ' m4_pattern_allow([^[L]IBOBJS$]) '
というのはどうだろう?一応どっちもいけるようになった。 残り少ない命の1.6.xだし、これでいいか。
更新。
* Can download from multiple mirrors - use CTRL-Click or Shift-Click in the mirror site dialog.
というわけで複数のミラーサイトが指定可能になった。 もちろんその情報は保存される。 つまり この場所 の情報も保存できるようになったわけだ。