作業目的 : デスクトップ機を中心として作業内容を集約する方法を模索しま す
同一機械の別パーティション間でのデータのやりとりであれば, パーティショ ンを mount すれば済むが, 別機械間, しかもLinuxとWindowsXPとなるとそう はいかない. 無事にデータのやりとりができないと知恵を絞ってみた:
ちなみに3. sambaはLinux機を常時起動しつつデータをやりとりする方法であ り, 今回のケースとは逆なので除外. よって, ここでは1.のバージョン管理シ ステムのサーバを立てる方法, およびWindowsXP機をNFSサーバにする方法を模 索してみます.
Cygwin上でSubversionを使ってファイル管理をしているので, せっかくだから サーバを立ててしまおう, と思うわけです.
サーバを立てる方法には大きく分けて2つあります:
まずはDiscripusで紹介されているように, inetd経由で起動しようかと思った わけですが, 何故か繋がりません. 原因を追及しようにも, cygwinのinetdは cygrunsrv経由ではなく独自に常駐してしまうので, ログが残りません. とい うことで, 原因を追及できないので却下.
ということで, daemonとして(というか, XPのサービスとして)常駐させること となるのでした.
まずはコマンドラインから
/usr/lib/subversion/bin/svnserve -d -r /var/svnとして起動したところ, ちゃんと通りました. よって, daemon方式を採用. 毎 度自分で直に起動するのは面倒ですので, もちろんXPのサービスとして登録し たくなるわけです. そこで登場するのは cygrunsrv ですね. ということで
cygrunsrv -I svnserve -d 'CYGWIN Subversion' -p /usr/lib/subversion/bin/svnserve -a '-d -r /var/svn'とやってみます. と, 登録はされるものの, 起動させると何故かエラーを吐い て止まる. おかしいと思い, cygwinのsetup.exeを実行させると, ぞろぞろアッ プデートされるパッケージがあり, いつの間にか起動できるようになってまし た.
でも起動時に何か妙らしく, 手動で起動させるとたいがい「起動中」で止まっ たままになります. まぁ, タスクマネージャーで見るとちゃんと svnserve が 起動してるし, アクセスもできるので大丈夫かと.
あとは -r オプションで与えたリポジトリの在処を本当の在処に直すだけ. こ れで
svn list svn://localhost/...としてリポジトリを指定すると, 中身がぞろぞろ表示されるはずなのですが…
これで終わりかと思いきや, 実はまだ作業が残っているのです. それは /etc/services へのプロトコルの登録. これをしないと通信できません. とい うことで, /etc/services にこの一行を追加しましょう:
svn 3690/tcp #Subversion on inetdこれで幸せになれるはずです.
リポジトリディレクトリ下の conf/svnserve.conf の内容を修正しておかない と, commit できなくなりますのでご注意.
Windows上でNFSサーバが立てられれば文句ないわけでして. ということで解決 法としては
となるわけですね. ということで, まずはcygwinに頼ることにします1. ここを 参照して立ててみたわけです. 何のことはない. setup にて関連パッケージを 導入してから nfs-server-config を実行するだけ. そしてサービスを起動し ていくわけですが… 結果から言えば駄目でした. portmap はちゃんと起動す るのですが, 肝心の nfsd と mountd についてはエラーを吐いて起動に失敗し てしまいます. いろいろ調べてみたりしたんですが, うまくいかず断念.
仕方がないので, 別の手を考えるしかなくなるわけですね.
SOSS-NFSという, Windows95/98/NT上でNFSを実現するソフトがありましたので, これを導入してみました. 一応ちゃんと動きます. マウントもできました. と いうことで, 採用.
マウントするのにとても時間がかかります. 何かのタイムアウトを待っている ような気もするのですが… 設定の問題なのか, それともプログラム自身の問 題なのか, 原因は究明しておりません. まぁ, 使えるからいいや, みたいな.
[1] 本当はSFU(Service for UNIX)あたりに頼るのが一番綺麗な方法なんでしょ うが, WindowsXP HOME Edition には対応してない ので断念. 勘弁してくださ いよ, Micr○s○ftさん.