Snow LeopardでSSHFSを利用している人に対するメモとファイル


アブストラクト:

とりあえず、Snow Leopardで、問題なく利用可能(SSHdelay.so削除 & follow symbolic link問題解消)なMacfusionのバイナリを配布しとります。
このエントリの下からどうぞ。とにかく「今すぐ使える」ことがメイン。自己責任で!
信頼できないファイルじゃ!とお考えならば、macfusionのソースを落として、
エントリに記載してある問題を修正してコンパイルしてくださいな。

前に Snow Leopard をインストールし、逃げるように Leopard に戻った。
問題点はいくつかあったが、大きな問題が2つあった。

1つめが「ことえりの馬鹿さ加減」。2つめが「SSHFSが正しく動作しない」

1つめについては答えが出た。それは カワセミというIM。
egbridgeの後継と考えても差し支えはない。
まだ使い始めたばかりなんだけど、以下の2つをサポートしている点で選択した。

  • Snow Leopardに対応している
  • ことえりよりも有能
  • 文章記述中、Shiftキーを押すことによって半角英数をインラインで入力できる
  • 1995円(!)

これならば、ATOK2009を買わなくても問題はない。むしろ、ATOK2009はあるバグを放置してリリースしているという大きな問題がある。
(バグについては内容から外れるので書かないが、「対応しないよーぷっぷー。ATO2010で直してやるよ」と言うようなことを言われた))

変換効率については、それぞれの打ち方というのが存在するので何とも言えないが、ことえりよりも少々賢い、ATOKよりはアホっぽい感じはする。
これについては使っていくうちに慣れればよい話だし、こまけぇこたぁいいんだよ的発想で利用を継続しようと思う

IMの話はこれくらいにして、次の問題に移る。そう、SSHFSだ。

Snow Leopardが発売されて約3ヶ月。MacFusionは初期のころから対応していたが、SSHFSはちゃんと対応していなかった。
「でもまぁすぐ対応するだろう」とか思っていたら、これが全然対応しない。一体全体これはどうしたことなんだろうか。
どこかの国のエージェントが動いてSSHFS系の開発者を全員アウシュビッツ送りにでもしたのかという妄想が広がる。

といっても、MacFusion.app(GUI)や、sshfs.app(GUI)は、sshfsコマンド自体のフロントエンドでしかないみたい。
なので、Snow Leopard 対応といってもコマンド自体がSnow Leopardに対応しないとどうしようもないんだろうね。

一応、昔のエントリにも記述した通り、MacFusionについては sshnodelay.so を削除すれば動作する。
これで逃げようと思ったら、MacFusion にはこの問題とは別に大きなバグがあった。

個人的に、SSHFSのオプションであるfollow_symlinksがonになっていると困る事象が発生した。なので、こいつをなんとかせねばならない。
MacFusion には follow_symlink というオプションをチェックボックスで on/off できるようになっているのだが、これが動いていない。

follow_symlink オプションを off にしてもマウント先に接続すると、必ずfollow_symlinkオプションが有効になってしまう。
実際に、このオプションを off にしている状態のものと、on にしている状態のものでどのような差があるかを調べてみた。
以下がその結果。

#On時
Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshfs-static [email protected]:dev /Volumes/dev.local -p22 -oCheckHostIP=no -oStrictHostKeyChecking=no -oNumberOfPasswordPrompts=1 -ofollow_symlinks -ovolname=dev -ologlevel=debug1

#Off時
Macfusion.app/Contents/PlugIns/sshfs.mfplugin/Contents/Resources/sshfs-static [email protected]:dev /Volumes/dev.local -p22 -oCheckHostIP=no -oStrictHostKeyChecking=no -oNumberOfPasswordPrompts=1 -ofollow_symlinks -ovolname=dev -ologlevel=debug1

差がないのだ。これは、チェックボックスがどう考えても正しく動作していない。
調べてみると、"Cannot disable -o follow_symlinks in 2.0.3"*1にて報告されているバグだった。
ただ、報告 & パッチは投げられているものの、リリースされているバージョンにはこの問題を残しっぱなしという状態だ。怠惰だ・・・。

じゃあなんとかこの問題を修正しようじゃないかということで、とにかく最新版のTrunkにあるソースを拾ってきてコンパイル・・・エラー。
こういう場合、アメリカではこういう表現をすればいいのかな? "Fuck"と。
調べてみると、凡ミスでエラー作り込んでやがりました。

#MFfileSystemControllerの修正ポイント
if (super = [super init]){ -> if (self = [super init]){

そして、一応Tracのチケットを確認したら、やはり同じレポートが…やっぱりバグ修正中に某国のエージェントに連れ去られたんじゃ・・
とにかく、今の問題は「今すぐ動いて」というわけで、修正してコンパイルしたものをUpします。

同じ問題にはまっている人がいたら是非ご活用ください。
とにもかくにも、これでやっとSnow Leopardを安心して利用できそう。あーよかった。
もちろんのことながら、利用は自己責任、なんかあったらソースをmacfusionのところから落として自分で修正してね。

あ、あともし僕がこの修正で某国のエージェントに連れ去られたらうわなにをするやめろうわあああああぁ

Macfusion.zip