〜2002年2月中旬〜
RWN - Ruby Weekly News
Ruby binariesのcygwin1.dllをCygwin 1.3.9-1にした。 いや実際は金曜日の話なんだが。
で、結局config.cacheの中身になぜ$がつくかというとbash 2.05だと
% bash -c 'foo="a b";set |grep foo' foo=$'a b'
となるから。bash 2.04は
% bash -c 'foo="a b";set |grep foo' foo='a b'
と、なるので2.05からみたい。
久し振りにSirCamだ。230KBもあるなんだかわからんファイルを送って来ないように。
だからSirCamを2日連続で送ってくるなよ。ベルギー在住らしい。
screen内でemacs -nwってのは寂しいよねえ。 と思ってたらEmacs21なら色がつくじゃん *1。 cmailは
(cmail-i18n-defcustom cmail-highlight-mode window-system
てな感じなので、cmail-highlight-modeを強制的にtにする。あと、
(set-face-foreground 'modeline "gray") (set-face-background 'modeline "black")
とするとなんかEmacs21ぽくていい。 てゆかなぜ-nwのときはfgとbgが逆なのだ?
更新。
とりあえず[test]のほうに入れとこう。
更新。
3日目だ。いい加減SirCamに感染してるって教えてやるべきか? 毎回200KBほど送られてもかなり迷惑だしなあ。
久し振りにバージョンアップしてみた。 ここに書いてるということは、そう、またbootしなかったのである。
まずDOS用のフロッピーをあらかじめ用意して
% sudo mount /dev/fd0 /mnt % sudo /usr/local/sbin/grub-install --root-directory=/mnt '(fd0)'
てな感じでrescue diskを作り、これでちゃんとbootするかどうか確認した。 GRUBはFATにインストールできるから、 いざってときにmenu.lstをWindowsからいじれて便利なのだ。 その後
% sudo /usr/local/sbin/grub-install '(hd0)'
としてるので、それほど心配はしてなかったんだけど、 結局のところ元に戻してもbootしないのであった。 正確なエラーメッセージはもう覚えてないけど、 stage1.5がloadできないとかそんな感じの内容だった。
元に戻らないとしたら物理的な位置が原因としか考えられない。 とするとstage1.5がきっと8GBの壁を越えてしまったのだろう。 8GBを越えない別のパーティションを用意しgrub-installし直したらbootできた。 ビンゴのようだ。
ひょっとしてstage1.5がloadできればkernelの位置はどこでもいいんだろうか? 実験してみるとそんな感じだ。 いずれにせよ/bootを別に用意しとくべきだったな。
autoconf方面でもbash 2.05の$'...'に関してはいろいろあったようで、 さがみさんというかたから情報をもらった。ありがとうございます。 で、bash 2.05aでは\nのようなものを含まなければ$がつかなくなった。
% bash -c 'foo="a b";set |grep foo' foo='a b' % bash --version GNU bash, version 2.05a.0(1)-release (i586-pc-linux-gnu) Copyright 2001 Free Software Foundation, Inc.
$がつく典型的な例はIFS。
% bash -c 'set |grep IFS' IFS=$' \t\n'
これが生のままだと確かにわかりにくい。
なんかすごく速くなったような気がする。 off-line時にRAAぐらい大きいとかなり待たされてたんだけど、あ、 ModifyHTMLのenable-modify-htmlがnoになってるからだ。 2.7は/etc/wwwoffle.confを見るのか。 でもこれをyesにするとno dataになってしまうなあ。うーむ。 これじゃadd-cache-infoが使えない。 http://localhost:8080/control/もno dataだ。 なんかバグっぽいな。とりあえず2.6dに戻そう。
それはそれとしてwwwoffle-namazuも同梱されてる。
更新した。 -acもなぜか最近はactiveだったりするけど、これはどういう位置付け?
更新。
これを無視してたらしい。
WWWOFFLE: There is already a directory /var/spool/wwwoffle/html.old. WWWOFFLE: Remove it and re-run make. WWWOFFLE:
消してmake installしなおしたらちゃんとうまくいった。疑ってごめん。
ミステリーサークルって人間が3人で3時間程度で作れるのか。 イギリスにはミステリーサークルを作る団体が8ぐらいあるらしい。
% i386-cygwin-ruby install.rb %
えっ?と思いdiffを取ってみるとChangeLogとmakehtml.rbだけの違いだった。なるほど。
更新。
なんか急にサイズが大きくなったと思ったら新しいRDocを使っているのか。 これからこんな感じでみんな大きくなるのかな。
CVSでupdateしてるんだけどNEW_FEATURESを見ると2/10にalpha-aが出てるようだ。 アナウンスを見落としたか?ruby-talkをgrepしても出てこない。 それにしてもalpha-9の次はalpha-aってのは意表を突かれた。 そういうバージョンを作られるとsetup.ini的には非常に困るなあ。
いずれ正式にリリースされればalphaは外れるから rdoc-alphaというパッケージ名にしてしまう手もあるか。
rubyのソースごと試してみたら1時間経っても終わらない。
watanabe 1003 41.6 77.5 141640 98756 pts/2 D 15:31 25:23 \ /usr/local/bin/ruby /usr/local/bin/rdoc ...
ああ、これじゃ時間かかるわけだ。メモリが足りないな。 killしたらなにも残らなかった。ぐふっ。
いままではPPxPのIPマスカレード機能を使って
filter ip +mO -S 192.168.1.0/24
てな感じで使ってたが、Linux 2.4.xのiptablesを試した。 iptables はmakeして普通にインストールしただけ。 kernelは既にreconfig済みなので、 後はダイアルアップして実際に実行してみる。
% sudo iptables -t nat -A POSTROUTING -o tun0 -j MASQUERADE
でokだな。tun0はifconfigして実際のdevice名を使う。 あ、もちろんあらかじめ
% grep ip_forward /etc/sysctl.conf net.ipv4.ip_forward = 1
としてある。
デバイス名は$PPXP_IFでわかるのでこうしとくか。
% cat ~/.ppxp/rc/nat.rc #!/bin/sh export PATH="/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin" IPTABLES=/usr/local/sbin/iptables case "$1" in up) case "$PPXP_PHASE" in Dead) ;; *) sudo $IPTABLES -t nat -A POSTROUTING -o "$PPXP_IF" -j MASQUERADE ;; esac ;; down) sudo $IPTABLES -t nat -F POSTROUTING ;; esac exit 0
ftpに関してはlftpが勝手にpassive modeにしてくれるので気にしない。 ip_conntrack_ftpもip_nat_ftpも作ってあるのでmodprobeしてもいいんだけど。
次はパケットフィルタリングだが、 iptablesを並べるのはよくありがちだよね。 それだとつまらないので、 一度iptablesで設定してiptables-saveして、 その結果をiptables-restoreするようにしてみよう。 こんな感じ。NATの設定も入っている。
% sudo iptables -A POSTROUTING -o tun0 -j MASQUERADE % sudo iptables -N ppxp-in % sudo iptables -A INPUT -i tun0 -j ppxp-in % sudo iptables -A FORWARD -i tun0 -j ppxp-in % sudo iptables -A ppxp-in -p tcp -m tcp --dport ssh -j ACCEPT % sudo iptables -A ppxp-in -j LOG % sudo iptables -A ppxp-in -j DROP % sudo iptables-save # Generated by iptables-save v1.2.5 on Mon Feb 18 01:24:42 2002 *nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] -A POSTROUTING -o tun0 -j MASQUERADE COMMIT # Completed on Mon Feb 18 01:24:42 2002 # Generated by iptables-save v1.2.5 on Mon Feb 18 01:24:42 2002 *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] :ppxp-in - [0:0] -A INPUT -i tun0 -j ppxp-in -A FORWARD -i tun0 -j ppxp-in -A ppxp-in -p tcp -m tcp --dport 22 -j ACCEPT -A ppxp-in -m state --state ESTABLISHED,RELATED -j ACCEPT -A ppxp-in -j LOG -A ppxp-in -j DROP COMMIT # Completed on Mon Feb 18 01:24:42 2002
sshだけ開けた *1。 これを~/.ppxp/nat.upとでも名前をつけて保存しとこう。逆に
*nat :PREROUTING ACCEPT [0:0] :POSTROUTING ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT *filter :INPUT ACCEPT [0:0] :FORWARD ACCEPT [0:0] :OUTPUT ACCEPT [0:0] COMMIT
を、たとえば~/.ppxp/nat.downという名前で作っておけば
% sudo iptables-restore ~/.ppxp/nat.down
で後かたづけも簡単。最終的にはこうなった。
% cat ~/.ppxp/rc/nat.rc #!/bin/sh export PATH="/usr/local/bin:/usr/bin:/bin:/sbin:/usr/sbin" RESTORE=/usr/local/sbin/iptables-restore case "$1" in up) case "$PPXP_PHASE" in Dead) ;; *) sudo $RESTORE $HOME/.ppxp/nat.up ;; esac ;; down) sudo $RESTORE $HOME/.ppxp/nat.down ;; esac exit 0
NAT HOWTO を見ると後かたづけはしなくてもというか、 そもそもup時に動的に設定しなくても、 最初から設定しておいてそのままの状態でもいいんじゃないかという気もする。
ppxp-outもいずれ考えよう。
regex.cのxmalloc関連のプロトタイプはlongにするんじゃなくて消すべきだったか。 defines.hに追加されたわけだし。
READMEには一番最初にLinuxが挙げられてるから問題ないと思ってたら、 いきなりSEGVだ。やっぱmallocがらみのようで、 もう面倒だから自前のmallocを使わないようにquick hackしたら立ち上がった。 とはいうもののktermだとtermcap的に何か足りなくてopen modeになる。 いやあ、open modeなんてなつかしすぎるよ。vimではお目にかかれないもんなあ。
% TERM=xterm ./vi README
ではちゃんと立ち上がる。調べるのも面倒なのでncursesを使うようにしてみる。 いいみたい。:verしてみると渋いね。
Version 3.7, 6/7/85 (gritter) 2/17/02
あと10日ほどで3月になってしまうわけで、 このままだと例の法則がまた活きてきたり。
使ってみたいけど、Epic4の日本語対応パッチってあったっけ?
久し振りのBadtrans.Bだ。