3月ごろ、Linuxにしたあと、困ったことが起きた。
順を追って説明しよう。
10年ぶりのLinuxなので、色々違っていた。
smbfsがcifsとなっていたし、SMBプロトコルでやりとりされる日本語文字コードがCP932からutf-16になっているのも知らなかった。そのせいでNASをマウントするのに、何度もman mount.cifsを読む必要があった。
時間がある時に、遊びでいろいろな馬鹿Programを書いている。
時間が無いときはできないので、しばしば馬鹿Programの開発は断片的になる。
そうなってもいいように、いろいろな対策をしている。そのうちの1つがVersion管理ツールだ。
Windows を使っている時は、TortoisSVNを使っていたが、Linuxになったので、svnコマンドを使うことになった。 Localで動かしてみると動くのだが、Sourceコード等の保存には、市販のNASを使っている。
母艦だけならよいが、ボロVAIO-C1もあるので、NASに保存しておくと、色々楽なのだ。
家庭用のNASなので、当然プロトコルはSMBになる。
Linuxでもcifs(新しいsmbfs)でマウントすれば使える。
Localで動くのだから、cifsでNASをマウントして、そこにrepositoryを作れば動くだろうと思っていた。
しかし、checkoutやupdateはできてもcommitができない。
そして、ふとあることに気がついた。
マウントできないで、何度もman mount.cifsを読んでいたので、気になることが書いてあった事を思い出したのだった。
以下の部分だ。
nobrl Do not send byte range lock requests to the server. This is necessary for certain applications that break with cifs style mandatory byte range locks (and most cifs servers do not yet support requesting advisory byte range locks).直訳
nobrl サーバへByte range lock要求を送らない。これはcifsスタイル必須 のByte range lock(そして多くのcifsサーバはここでいうByte range lockの要求をまだサポートしていない)で、ダメになる特定のアプリケ ーションで必要になる。読めるが、意味がわからない。多くのcifsサーバ、Sambaのこと? Windowsのこと?
特定のアプリケーションとは、何の事を行っているのか?
3月に読んだときには、そのくらいしか考えていなかった。
それがぼんやり頭の中に残っていたのだろう。svnでcommitできないときに、思い出した。
特定のアプリケーションとは、svnのことか?
試しに、mount時のオプションにnobrlを追加してみると、ビンゴ!
svnがちゃんと動いた。
めでたし、めでたし。と言いたい所だが…
年のせいか、1週間前のことでも忘れて出てこなくなることが増えた。
上記の処理をしたあと、偶然にそれと関係のある話題が1週間後に出たとき、'nobrl'という名前を忘れていた。
しかもByte range lockの部分を忘れている状態で、上記文書を「あーだこーだ」で説明しようにも、「SMBでは必須なんだけど、多くのサーバでは未サポートのやつで...」なんてことになり、聞いている側は「必須なのになんで未サポートなの?なにそれ?意味わかんない。馬鹿じゃない?」的な感じになる。
「そうそう。すごくへんなんだけど、でもそれをやるとダメになるから、ダメにならないようにそれをできないようにしないといけなくて...それって何だっけ?」
私は説明がへたくそだ。いつも人に言いたいことが伝わらない。
今週、若者とcifsの話をしているときに、急に明確に記憶が蘇ってきた。
目の前の情景や音に、過去の記憶にある情景や音が頭の中ではOver wrapして、大騒ぎになり、普通にしゃべるのも面倒極まりない。もちろん、manページもはっきりわかる。
ついでに、伝えたかったことが伝えられなかったことも思い出した。
今回は、慎重に実際にmanページも開きながら、説明した。
なんだかんだで、3ヶ月つかっているが、問題はおきてない。
わたしがボケナスであるということ以外は。
0 件のコメント:
コメントを投稿