タグ: MinGW

WindowsにインストールしたVagrantにMinGWをインストールして、rsyncコマンドインストールする

Vagrantfile中に

config.vm.synced_folder "../app", "/var/www/app", type: "rsync"

のような同期フォルダのオプションでrsyncを使用したいため、rsyncを導入したときのメモ

Vagrantの組み込み実行ファイル領域(C:HashiCorpVagrantembedded)にrsyncをインストールして、vagrant up中にrsyncが利用できるようにする。

前提

  • Vagrantは「C:HisashiCorp」にインストールしている

インストール手順

  1. MinGWをインストールする。インストール先はデフォルトの「C:MinGW」
  2. 「C:MinGW以下」(binなどのディレクトリ)のファイル、ディレクトリを「C:HashiCorpVagrantembedded」に上書きコピー
  3. 「C:HashiCorpVagrantembeddedvarlibmingw-getdata」の【profile.xml】・【defaults.xml】を編集
    deraults.xml

    @@ -130,7 +130,7 @@
           default, irrespective of its actual "id" attribute value.
         -->
         <sysroot subsystem="mingw32" path="%R" />
    -    <sysroot subsystem="MSYS" path="%R/msys/1.0" />
    +    <sysroot subsystem="MSYS" path="/HashiCorp/Vagrant/embedded" />
       </system-map>
    
     </profile>
    

    profile.xml

    @@ -132,3 +132,3 @@
         <sysroot subsystem="mingw32" path="%R" />
    -    <sysroot subsystem="MSYS" path="%R/msys/1.0" />
    +    <sysroot subsystem="MSYS" path="/HashiCorp/Vagrant/embedded" />
       </system-map>
    
  4. mingw-getコマンドでssh,rsyncをインストール(>はコマンドプロンプト)
    > C:HashiCorpVagrantembeddedbinmingw-get.exe update
    > C:HashiCorpVagrantembeddedbinmingw-get.exe install msys-openssh msys-rsync
    

操作手順

D:\work\project\envディレクトリにVagrantfileがあり、D:\work\project\appディレクトリをゲストOS上の/var/www/appに同期したいとき。
Vagrantfileの記述は冒頭のもの。

  1. vagrant upでVagrant起動
  2. ゲストOSが起動したら、vagrant rsync-autoでホストファイル上の共有フォルダを監視状態にする
    > vagrant rsync-auto
    ==> default: Doing an initial rsync...
    ==> default: Rsyncing folder: /d/work/project/app/ => /var/www/app
    ==> default: Watching: D:/work/project/app
    D, [2015-07-01T15:21:19.682053 #4564] DEBUG -- : Adapter: considering TCP ...
    D, [2015-07-01T15:21:19.682053 #4564] DEBUG -- : Adapter: considering polling ...
    D, [2015-07-01T15:21:19.683030 #4564] DEBUG -- : Adapter: considering optimized backend...
    
  3. 共有フォルダ内のファイルを編集後保存すると、自動的にゲストOS側に転送される。
    ==> default: Rsyncing folder: /d/work/project/app/ => /var/www/app
    

    でゲストOSに反映

参考

広告