vagrantを使うことでどういった部分が効率が良くなるのでしょうか。
お考えの通り、ファイル共有自体にVagrantのメリットはありません。
Vagrantを使う場合下記のメリットの為に使います。
(4つとも同意出来るのであれば使うと幸せになれるでしょうし、同意できない項目があればVagrantを捨てても構いません)
RubyもRailsもバージョン変わる度に大騒ぎしてますよね。
プロジェクト2つ3つ請け負った時にそれをどう管理しますか?
仮想マシンで開発するという選択肢は絶対に必要です。
vagrant up
のたった1コマンドで、同じマシンが立ち上がる
何度作って壊しても必ず同じマシンが立ち上がるのは便利です。
- Vagrantfileやプロビジョンはテキストファイル
GitHub等で簡単に共有出来ますし、世代管理も簡単で何をどのように変えたかも一目瞭然です。
開発環境のスナップショットやLinuxのインストールCDではそう簡単にはいきません。
- ラッピング対象の環境によらず、Vagrnatが用意しているコマンド群が利用出来る
VirtualBOXやConoHa、AWS…仮想マシンやクラウドでマシンを借りる手段は様々ですが、
全てこれらのAPIは自分勝手な実装で、コマンドを一から覚え直しになります。
要するに、自分一人で開発するならVirtualBOX単品で十分です。
共同開発者が出た場合や、他のマシンに環境を持っていく場合、
Vagrantfileとプロビジョンにコード化された開発環境が定義されていると楽ちんですね。
共有フォルダを作ってくれるというのはわかるのですが、
そんなもの作らなくても充分に開発できると思います。
さらに共有ならGithubで可能
質問者さんはVimやEmacsのようなCLIエディターを普段使っているのではないでしょうか?
その場合は仰るとおり、ファイルの共有自体に何もメリットを見いだせないでしょう。
仮想マシン内でGitHubからソースコードを落としてきて開発すれば十分です。
(ローカルでは絶対にファイルも開発環境も何も持たないということで、一貫した管理が出来るので理想系です)
しかし、GUIの使い慣れたエディターやIDEを持っている方はそういう運用は出来ません。
ちょっとの修正やデバッグで何度もソースコードを触る場合、
gitでしかファイルを共有出来ない場合地獄が見えます。
この問題はVagrantに限らず仮想マシンの開発環境で仕事する人全員について回る問題です。
ローカルとのファイル共有が必要ならば頑張ってください。
普通に使う分にはVirtualBOXのフォルダ共有の仕組みがデフォルト有効になっているはずなのでわりと簡単に出来ると思うのですが・・・
蛇足:私はWindowsで開発するのにエラー出まくって萎えたので、結局Macbook買いました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。