2005年2月28日の記録

作業目的 : デスクトップ機を中心として作業内容を集約する方法を模索しま す

作業方針

同一機械の別パーティション間でのデータのやりとりであれば, パーティショ ンを mount すれば済むが, 別機械間, しかもLinuxとWindowsXPとなるとそう はいかない. 無事にデータのやりとりができないと知恵を絞ってみた:

  1. CVS/Subversionのサーバを立ててみる
  2. NFSでマウント
  3. sambaでマウント
  4. その他

ちなみに3. sambaはLinux機を常時起動しつつデータをやりとりする方法であ り, 今回のケースとは逆なので除外. よって, ここでは1.のバージョン管理シ ステムのサーバを立てる方法, およびWindowsXP機をNFSサーバにする方法を模 索してみます.

[模索1] Subversionサーバを立てる

Cygwin上でSubversionを使ってファイル管理をしているので, せっかくだから サーバを立ててしまおう, と思うわけです.

サーバを立てる方法には大きく分けて2つあります:

  1. inetd経由で起動
  2. daemonとして常駐

まずはDiscripusで紹介されているように, inetd経由で起動しようかと思った わけですが, 何故か繋がりません. 原因を追及しようにも, cygwinのinetdは cygrunsrv経由ではなく独自に常駐してしまうので, ログが残りません. とい うことで, 原因を追及できないので却下.

ということで, daemonとして(というか, XPのサービスとして)常駐させること となるのでした.

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 できなくなりますのでご注意.

[模索2] NFSサーバを立てる

Windows上でNFSサーバが立てられれば文句ないわけでして. ということで解決 法としては

  1. cygwinでNFSサーバを立てる
  2. その他の方法でNFSサーバを立てる

となるわけですね. ということで, まずはcygwinに頼ることにします1. ここを 参照して立ててみたわけです. 何のことはない. setup にて関連パッケージを 導入してから nfs-server-config を実行するだけ. そしてサービスを起動し ていくわけですが… 結果から言えば駄目でした. portmap はちゃんと起動す るのですが, 肝心の nfsdmountd についてはエラーを吐いて起動に失敗し てしまいます. いろいろ調べてみたりしたんですが, うまくいかず断念.

仕方がないので, 別の手を考えるしかなくなるわけですね.

というわけで…

SOSS-NFSという, Windows95/98/NT上でNFSを実現するソフトがありましたので, これを導入してみました. 一応ちゃんと動きます. マウントもできました. と いうことで, 採用.

  1. まずは展開. 適当なところに置きます.
  2. export.usを修正. どうせプライベートアドレス空間からしかアクセスでき ないので, マシンを限定しないで運用してみました.
  3. あとは runsoss.bat を実行するだけです. スタートアップあたりに仕込む と吉, かな.

でも問題が…

マウントするのにとても時間がかかります. 何かのタイムアウトを待っている ような気もするのですが… 設定の問題なのか, それともプログラム自身の問 題なのか, 原因は究明しておりません. まぁ, 使えるからいいや, みたいな.

参考

Subversion関連

NFS関連


[1] 本当はSFU(Service for UNIX)あたりに頼るのが一番綺麗な方法なんでしょ うが, WindowsXP HOME Edition には対応してない ので断念. 勘弁してくださ いよ, Micr○s○ftさん.