RubyMine でいちいち同期とかややこしい
最近RubyMine を使い始めたんですが、仮想環境との同期がちょっと面倒というかややこしくて困っておりました。
で、思い至ったのが「ホストマシンとゲストマシンの共有フォルダ作って、そこをワークスペースにしちゃえば良いんでね?」という、ちょっとアレな解決策。
ほんまはもっとマシな方法があるのかもしれませんが、今のところこれで不自由しないので、以下に共有フォルダの作成手順をご紹介。
手順の流れ
- kernel アップデートと必要なパッケージのインストール
- GuestAdditions をインストール
- ホスト側に共有フォルダ作成
- ゲスト側に共有フォルダ作成
- VirtualBox の仮想マシンで共有設定
- ゲスト側で共有フォルダをマウント
- 自動マウント設定
- 動作確認
手順詳細
事前準備として、共有フォルダを操作するユーザーはvboxsf グループに参加させておいて下さい。
sudo usermod -aG vboxsf <username>
1.kernel アップデートと必要なパッケージのインストール
kernelアップデート
sudo yum update kernel
パッケージインストール
sudo yum install kernel-devel kernel-headers dkms gcc gcc-c++
終わったらrebootしておきましょう。
2.GuestAdditions をインストール
手順はこちら
3.ホスト側に共有フォルダ作成
お好きなところに。
ex)d:\VirtualBox_VMs\<machinename>\share_guest
4.ゲスト側に共有フォルダ作成
vboxsf グループに編集権限付与を忘れずに。
mkdir ~/hoge/piyo sudo chown -R :vboxsf ~/hoge/piyo
既存のフォルダを指定する場合は注意!
既存フォルダを共有先に指定すると、既存フォルダは消えてしまいます。
(ちなみに、削除されたわけではないので、後述のアンマウントをしてやれば復活します。)
5.VirtualBox の仮想マシンで共有設定
「フォルダのパス」=手順4で作成したホスト側共有フォルダのパス
「共有フォルダ名」=ゲスト内でマウントする際のフォルダ名
6.ゲスト側で共有フォルダをマウント
sudo mount -t vboxsf -o dmode=0777,fmode=0777 <手順7で設定した「共有フォルダ名」> <手順6で作成したゲスト側フォルダのパス>
7. 自動マウント設定
このままだと仮想マシンを立ち上げる都度マウントしなければなりません。
VirtualBox側で「永続化」にチェック入れていても同じです。
ので、/etc/rc.local に手順8で実行したマウント命令を追記します。
8.動作確認
ホスト側で共有フォルダ内にファイル作成。
ゲスト側で共有フォルダ内のファイルに書き込み。
ホスト側で共有フォルダ内のファイル変更を確認。
ゲストを再起動後に共有フォルダ内容を確認。
マウント解除
ついでにマウントの解除方法も。
mount -t vboxsf <手順7で設定した「共有フォルダ名」>
マウントフォルダがビジーだよと怒られる場合は-lオプション付けて強制アンマウントで。
mount -lt vboxsf <手順7で設定した「共有フォルダ名」>