Windows7(64bit)でVirtualBox + Vagrant + veewee環境を構築した時のメモ

ちょっと前にVim7.3のパチラッシュとプラグインのif_lua化に対応するために
ゴニョゴニョしたのを(もう忘れてるかもしれないけど)忘れないうちにメモっておく。
(後半はそのうちchefとかansibleあたりでやってみたい)


まずは
WindowsでのVagrant環境構築
とか
veeweeを使ってVagrant用のboxを自分で作る方法
を参考に必要なソフト類をインストール
 

ここからダウンロードしてインストール
 

  • Vagrant

ここからダウンロードしてインストール
 

ここから2.0.0(x64版)とDevKit(mingw64-64)をダウンロードしてインストール
DevKitはC:\Ruby200-x64\dkに展開し、

> gem install bundler

でbundlerを入れる
 

  • veewee

githubから持ってきてインストール

> git clone git://github.com/jedi4ever/veewee.git
> cd veewee
> bundle install

 
準備ができたら仮想マシンを作成し、Vimをビルドする。
 

  • boxの作成
> bundle exec veewee vbox define 'CentOS-6.4-x86_64-minimal' 'CentOS-6.4-x86_64-minimal' -workdir=veeweeのパス

で設定ファイルを作成し、適宜ファイルを編集したら、

> bundle exec veewee vbox build 'CentOS-6.4-x86_64-minimal' -workdir=veeweeのパス

VirtualBox用のイメージを作成して

> bundle exec veewee vbox export 'CentOS-6.4-x86_64-minimal'

でVagrant用のイメージに変換
 
ここまではコマンドプロンプトで実行。
この後は都合によりcygwinを使う。
 

  • Vagrantに追加
vagrant box add 'CentOS-6.4-x86_64-minimal' 'イメージのあるパス'

 

  • Vagrantfileを編集
Vagrant.configure("2") do |config|
  config.vm.define :gentoo do |gentoo|
    gentoo.vm.box = "gentoo-amd64"
    gentoo.vm.network :private_network, ip: "192.168.56.101"
  end

  config.vm.define :centos64 do |centos64|
    centos64.vm.box = "CentOS-6.4-x86_64-minimal"
    centos64.vm.network :private_network, ip: "192.168.56.102"
  end
end

 

  • Vimをビルド

vagrant upするとgentoocentosが立ち上がるようになったので、
(gentooのインストールは省略)
VimをビルドしたいOSにsshで入って

# これから作成する.soのパスを追加しておく
$ echo 'export LD_LIBRARY_PATH="$HOME/.pyenv/versions/2.7.5/lib:$HOME/.pyenv/versions/3.3.2/lib:$HOME/.rbenv/versions/1.9.3-p448/lib:$HOME/.luaenv/versions/luajit-2.0.1-p1/lib:$HOME/.plenv/versions/5.18.0/lib/perl5/5.18.0/x86_64-linux-thread-multi/CORE"' >> ~/.bash_profile
$ echo '' >> ~/.bash_profile

# pyenvのインストール
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYTHON_CONFIGURE_OPTS="--enable-shared"' >> ~/.bash_profile
$ echo 'export PATH="$HOME/.pyenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ echo '' >> ~/.bash_profile

# plenvのインストール
$ git clone git://github.com/tokuhirom/plenv.git ~/.plenv
$ git clone git://github.com/tokuhirom/Perl-Build.git ~/.plenv/plugins/perl-build/
$ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(plenv init -)"' >> ~/.bash_profile
$ echo '' >> ~/.bash_profile

# rbenvのインストール
$ echo 'export RUBY_CONFIGURE_OPTS="--enable-shared"' >> ~/.bash_profile
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
$ git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
$ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
$ echo '' >> ~/.bash_profile

# luaenvのインストール
$ git clone git://github.com/cehoffman/luaenv.git ~/.luaenv
$ git clone git://github.com/cehoffman/lua-build.git ~/.luaenv/plugins/lua-build
$ echo 'export PATH="$HOME/.luaenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(luaenv init -)"' >> ~/.bash_profile
$ echo '' >> ~/.bash_profile

# 設定した環境変数を読み込む
$ exec $SHELL -l

# Vimのif_xxx用にインストール
$ pyenv install 2.7.5
$ pyenv install 3.3.2
$ plenv install 5.18.0 -Dusethreads -Duseshrplib
$ rbenv install 1.9.3-p448
$ luaenv install luajit-2.0.1-p1

# vimをインストール
$ hg clone https://code.google.com/p/vim/
$ cd vim
$ export vi_cv_path_python3=$HOME/.pyenv/versions/3.3.2/bin/python3
$ ./configure \
    --with-features=huge \
    --enable-multibyte \
    --enable-gui=gtk2 \
    --enable-rubyinterp=dynamic \
    --enable-pythoninterp=dynamic \
    --with-python-config-dir=$HOME/.pyenv/versions/2.7.5/lib/python2.7/config \
    --enable-python3interp=dynamic \
    --with-python3-config-dir=$HOME/.pyenv/versions/3.3.2/lib/python3.3/config-3.3m \
    --enable-perlinterp=dynamic \
    --enable-luainterp=dynamic \
    --with-luajit \
    --with-lua-prefix=$HOME/.luaenv/versions/luajit-2.0.1-p1 \
    --enable-gpm \
    --enable-xim \
    --enable-cscope \
    --enable-fontset \
    --with-compiledby="daisuzu <daisuzu@gmail.com>" \
    --prefix=$HOME/local
$ make
$ make install

とするとVimとif_xxxに必要な.soが揃うので一式を.tar.gzとかで固めて
貧弱な(gitもhgもyumも使えない)環境に持っていけばOK。