現在、諸事情により、OSはWindowsVistaUltimate、エディタとしてEclipse、実行環境としてVmwareServer2で動かしているCentOS5を利用しているので、その開発環境のご紹介です。あくまでVistaをホストOSとしてEclipseを利用する前提ですので、その必要がない方は別の方法を推奨します。
実行環境のファイルを直接編集したいが・・・
ゲストとして動作させているCentOS上のファイルを直接編集したい場合、SSHでログインし、vimやemacsでというのが一般的ですが、今回はEclipseを使う事が前提です。となると、何らかの方法でホストとゲストの作業ディレクトリを共有しておく必要があります。
VistaからCentOSに接続する方法
ネットで検索すると直ぐにsambaを利用してマウントする方法が見つかります。ここから、Vistaからsambaを利用して接続したCentOSの「/home/user/work」ディレクトリを「X\:work」などのネットワークドライブとして設定し、それをEclipseのワークスペースとする方法が考えられます。
これでもCentOS上のファイルをEclipseで直接編集するという目的は達成出来るのですが、仮想といえどネットワーク越しにファイル操作する訳ですから、あまりパフォーマンスは期待できそうにありません。ただでさえEclipseはスペックを要求するので、見過ごせない程に影響が出る環境もあるでしょう。
CentOSからVistaに接続する方法
ここでは、逆の発想でEclipseはホストであるVistaのディレクトリをワークスペースにし、その場所をゲストであるCentOSがマウントすればどうでしょうか?Eclipseからはローカルとしてファイルを扱えるのでパフォーマンスも少しはマシな気がしてきます。それに、実行するOSをUbuntuなどに変える際に、ファイルを移動させる事も、新しくワークスペースの設定をせずとも、Ubuntuからマウントするだけでテストが可能になります。
では、どの様にゲストOSからVistaのディレクトリをマウントするかですが、これはとても簡単で、下記の2ステップで実現できます。
- Vistaの作業ディレクトリでネットワーク共有を有効化
- CentOSのfstabに設定を追加
設定内容・解説
ここではWindowsのネットワーク共有設定は割愛して「fstab」の設定内容を記載しておきます。
まずはコマンドでマウント出来るかをテスト。いうまでもないですが「uid」「gid」やIPアドレスは読み替えてください。
マウント時に「CIFS(Common Internet File System)」で接続しています。「CIFS」は「samba-client」をインストールすれば「mount.cifs」として利用できる様になります。また、WEB開発、SVN利用のため、ファイルやディレクトリのパーミッションは「0775」を指定しており、所有者も自分で固定しています。用途によって設定を変更してください。
[root@centos]# mount -t cifs -o exec,dev,suid,uid=500,gid=500,user=hoge,password=************,file_mode=0775,dir_mode=0775 //192.168.100.2/Users/hoge/work /home/hoge/work
問題なくマウントが出来れば、起動時に自動でマウント出来る様に「/etc/fstab」に追記しておきましょう。fstabに記述する際は若干ですが書き方が変わる事に注意してください。
[root@centos]# cat /etc/fstab
/dev/VolGroup00/LogVol00 / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
tmpfs /dev/shm tmpfs defaults 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
sysfs /sys sysfs defaults 0 0
proc /proc proc defaults 0 0
/dev/VolGroup00/LogVol01 swap swap defaults 0 0
#今回追加した箇所
//192.168.100.2/Users/hoge/Work /home/hoge/Work cifs exec,dev,suid,uid=500,gid=500,user=hoge,password=************,file_mode=0775,dir_mode=0775 0 0
これでホストであるVistaでEclipseを使ってコードを編集すれば、実行環境でスグにテストできる様になりました。更に別のパッケージ構成のゲストOSや、異なるディストリビューションでのテストも容易に行える様にもなっています。
追記:正直、ベストな環境とは思えませんので、これまでの内容で改善点やうそを書いているところがあれば、ご指摘を頂ける事を期待して投稿しました。