ftpfs : Plan9 の ftp クライアント
一応 ftp で ThinkPad から Debian に入れるようになった.
やり方は,前回書いたシェルスクリプトに
とかかいて,テキトーな ftpd を Debina にインストールして起動するだけ.
今回は,なぜか
Starting ftp server: proftpd - IPv6 getaddrinfo 'localhost.localdomain' error: Name or service not known
とかエラーメッセージが出て,proftpd が使用できなかったので,vsftpd とかいうやつを使ってみた.(参考サイト : Redhat9.0 : vsftpdの設定 ,vsftpdを試してみる)
# apt-get install vsftpd
んで,デフォルトでは anonymous FTP サーバーとして動いているから,「530 This FTP server is anonymous only.」とか言われて蹴られてしまうので /etc/vsftpd.conf とかの
のところのコメントアウトを外して,Debian のユーザがログインできるようにしておく (一応 hosts.allow とかも設定しておく.どうせ LAN 内限定だから, vsftpd : ALL : ALLOW とか超テキトーな設定だ).
あとは,/etc/init.d/vsftpd restart して,Plan9 から
とか,(とりあえず今のところは…) IP 直打ちで入る.
そうすると,/n/ftp 以下に,ホームディレクトリが「bind」される.
そしてこいつこそが Plan9 の真骨頂,every thing is file system です !
なんと,普通の FTP クライアントとは全く異なり,普通にマウントされたファイルシステムと同様にシェルが使えて, cd だの ls だの cat だの grep だのができる.ローカルとリモートの区別は全く付かない.素晴らしすぎる.
Plan9日記 2006-03-06 なんでもファイルサーバ
もしかして Debian でファイル作ると,即座に反映されたり,Plan9 でファイル作ったりもできるのかな ? と思ったけど,良く考えたら ftp の権限だからそんなことできるわけがない.
ということは,ということはだ.もし sshd かなんかを Debian で立ち上げておいて,Plan9 側からログインしたら,夢のような世界が広がるのではないだろうか (今は鍵の取得とかいろいろ面倒だからやらないけど,そのうち試してみよう.どうせ LAN 内限定だから,僕的には telnet で全然かまわないのだけど).
やばいよ分散 OS やばい.とにかくみんな,分散 OS のヤバさをもっと知るべきだと思います.
まぁ,確かに Plan9 は無いものの方が多い (ウェブブラウザすら無い) わけですが,逆に考えるんだ ! Linux や Windows にできることは,Plan9 ができる必要は無い.
とかく世の中,あれが無いこれが無いと否定面ばかり強調されがちですが,逆じゃないか ? とか,そんなことを思った秋の夜であります.
これはプログラミング言語とかでも同じなのかもしれない.Java や PHP (さらには COBOL/Fortran)にできることは,そいつらに任せておけば良い.RoR などのフレームワークが 「今の」 開発プロセスに適合するというのならば,バシバシ使って生産性を上げれば良い.民間にできることは民間に.そしてそいつらではできないこと,新しい時代を切り開くことこそが,新しい言語やパラダイムには求められているのである.
とかいっているような僕は,たぶん一生プロのプラグマティックプログラマーにはなれないなぁとか思った.
Linus の考え方は,技術論としては共感できるし,こういう姿勢は好きだけど,もし僕が運用している人だったらたまったもんではないなと.
ちょっと動かしてみたいだけなのに,バージョンごとに操作が変わったり互換性が無くなったりするから,マヌアルを読まないといけない.俺はいちいち説明書とか読む気にはなれない典型的日本人だし,常用するかしないかもわからないものに精通する暇もやる気もあんまり無いし,最悪,マニュアルすらあてにならない.
今回,いろんなところにはまって (いまだに,/etc/init.d/iptables が無い…) いろいろ心底うんざりした.
そういう意味では,全く変化しない,互換性完璧,というのも,価値としては重要なのではないかと.とかく変化や新しさが好まれる時代ですが.
だから僕は,中途半端に妥協と継ぎ剥ぎ的拡張を重ねてく言語が嫌いなんだな.C++/Java P 言語の一族とか.徹底した切捨てや割り切りがあって,もはや生きた化石みたいな言語,例えば C とか LISP みたいな言語が好きなのである (もちろん,研究は別よ).いろいろ矛盾しているけど.
# だから,たぶん僕は,いろんな体系や制限や拡張が乱立する型理論が絡む言語はあんまり好きじゃないんだよなぁ… 確かにいろいろ便利で役に立つかもしれないけど,型理論って,もはや理論のための理論になってしまっているというか… 当初の目的が失われている気がするよ. そもそも目的が無いのかもしれませんが.バグを数理的に撲滅する ? バグって何さ ? プログラムはいつも 100 % 正しい.バグは人間の心に存在する.結局は,プログラムのバグではなく,人間の心,仕様をデバッグしなければならない.そしてそれが本丸であり,仕様のデバッグの困難さに比べたら,プログラムの意味論的な不整合をハジくなんてのは枝葉に過ぎない.正しい仕様,正しい変換,正しいプログラム.この 3 つをシームレスに繋げる理論と枠組こそが重要だと思うのだけど… なんで世間はあさっての方向ばかり向いているのだろう.僕には理解できないよ (もちろん,王道は難しいからなんだけど.冒険なんてしないで,狭い世界で過去の成果をこねくり廻している方が楽だからね).とかいう話はどうでもいい.
(一つの記事に二つの相反する主張を入れる間違ったディベート管理人)
やり方は,前回書いたシェルスクリプトに
## ftp通信用モジュールのロード(FTPの通過および応答を許可)
/sbin/iptables -t filter -A FORWARD -i eth0 -p tcp --dport 21 -j ACCEPT
/sbin/iptables -t filter -A INPUT -i eth1 -p tcp --dport 21 -j ACCEPT
/sbin/modprobe ip_nat_ftp
/sbin/modprobe ip_conntrack_ftp
とかかいて,テキトーな ftpd を Debina にインストールして起動するだけ.
今回は,なぜか
Starting ftp server: proftpd - IPv6 getaddrinfo 'localhost.localdomain' error: Name or service not known
とかエラーメッセージが出て,proftpd が使用できなかったので,vsftpd とかいうやつを使ってみた.(参考サイト : Redhat9.0 : vsftpdの設定 ,vsftpdを試してみる)
# apt-get install vsftpd
んで,デフォルトでは anonymous FTP サーバーとして動いているから,「530 This FTP server is anonymous only.」とか言われて蹴られてしまうので /etc/vsftpd.conf とかの
# Uncomment this to allow local users to log in.
# ローカルユーザがログインできるようにするなら yes にする
# local_enable=YES
のところのコメントアウトを外して,Debian のユーザがログインできるようにしておく (一応 hosts.allow とかも設定しておく.どうせ LAN 内限定だから, vsftpd : ALL : ALLOW とか超テキトーな設定だ).
あとは,/etc/init.d/vsftpd restart して,Plan9 から
term% ftpfs 192.168.0.1
220 (vsFTPd 2.0.5)
331 Please specify the password.
230 Login successful.
215 UNIX Type: L8
257 "/home/aloha"
とか,(とりあえず今のところは…) IP 直打ちで入る.
そうすると,/n/ftp 以下に,ホームディレクトリが「bind」される.
そしてこいつこそが Plan9 の真骨頂,every thing is file system です !
なんと,普通の FTP クライアントとは全く異なり,普通にマウントされたファイルシステムと同様にシェルが使えて, cd だの ls だの cat だの grep だのができる.ローカルとリモートの区別は全く付かない.素晴らしすぎる.
Plan9日記 2006-03-06 なんでもファイルサーバ
もしかして Debian でファイル作ると,即座に反映されたり,Plan9 でファイル作ったりもできるのかな ? と思ったけど,良く考えたら ftp の権限だからそんなことできるわけがない.
ということは,ということはだ.もし sshd かなんかを Debian で立ち上げておいて,Plan9 側からログインしたら,夢のような世界が広がるのではないだろうか (今は鍵の取得とかいろいろ面倒だからやらないけど,そのうち試してみよう.どうせ LAN 内限定だから,僕的には telnet で全然かまわないのだけど).
やばいよ分散 OS やばい.とにかくみんな,分散 OS のヤバさをもっと知るべきだと思います.
まぁ,確かに Plan9 は無いものの方が多い (ウェブブラウザすら無い) わけですが,逆に考えるんだ ! Linux や Windows にできることは,Plan9 ができる必要は無い.
とかく世の中,あれが無いこれが無いと否定面ばかり強調されがちですが,逆じゃないか ? とか,そんなことを思った秋の夜であります.
これはプログラミング言語とかでも同じなのかもしれない.Java や PHP (さらには COBOL/Fortran)にできることは,そいつらに任せておけば良い.RoR などのフレームワークが 「今の」 開発プロセスに適合するというのならば,バシバシ使って生産性を上げれば良い.民間にできることは民間に.そしてそいつらではできないこと,新しい時代を切り開くことこそが,新しい言語やパラダイムには求められているのである.
とかいっているような僕は,たぶん一生プロのプラグマティックプログラマーにはなれないなぁとか思った.
Linus の考え方は,技術論としては共感できるし,こういう姿勢は好きだけど,もし僕が運用している人だったらたまったもんではないなと.
ちょっと動かしてみたいだけなのに,バージョンごとに操作が変わったり互換性が無くなったりするから,マヌアルを読まないといけない.俺はいちいち説明書とか読む気にはなれない典型的日本人だし,常用するかしないかもわからないものに精通する暇もやる気もあんまり無いし,最悪,マニュアルすらあてにならない.
今回,いろんなところにはまって (いまだに,/etc/init.d/iptables が無い…) いろいろ心底うんざりした.
そういう意味では,全く変化しない,互換性完璧,というのも,価値としては重要なのではないかと.とかく変化や新しさが好まれる時代ですが.
だから僕は,中途半端に妥協と継ぎ剥ぎ的拡張を重ねてく言語が嫌いなんだな.C++/Java P 言語の一族とか.徹底した切捨てや割り切りがあって,もはや生きた化石みたいな言語,例えば C とか LISP みたいな言語が好きなのである (もちろん,研究は別よ).いろいろ矛盾しているけど.
# だから,たぶん僕は,いろんな体系や制限や拡張が乱立する型理論が絡む言語はあんまり好きじゃないんだよなぁ… 確かにいろいろ便利で役に立つかもしれないけど,型理論って,もはや理論のための理論になってしまっているというか… 当初の目的が失われている気がするよ. そもそも目的が無いのかもしれませんが.バグを数理的に撲滅する ? バグって何さ ? プログラムはいつも 100 % 正しい.バグは人間の心に存在する.結局は,プログラムのバグではなく,人間の心,仕様をデバッグしなければならない.そしてそれが本丸であり,仕様のデバッグの困難さに比べたら,プログラムの意味論的な不整合をハジくなんてのは枝葉に過ぎない.正しい仕様,正しい変換,正しいプログラム.この 3 つをシームレスに繋げる理論と枠組こそが重要だと思うのだけど… なんで世間はあさっての方向ばかり向いているのだろう.僕には理解できないよ (もちろん,王道は難しいからなんだけど.冒険なんてしないで,狭い世界で過去の成果をこねくり廻している方が楽だからね).とかいう話はどうでもいい.
(一つの記事に二つの相反する主張を入れる間違ったディベート管理人)
