CentOS6.5環境にMiddlemanをインストール
Middlemanを使ってみようということで、Mac上の Vagrant + VirtualBox で CentOs6.5 をインストールし、そこでMiddlemanをセットアップしました。
CentOS6.5を Vagrant+VirtualBox でインストール
$ mkdir Middleman $ vagrant init $ vim Vagrantfile // 14行目あたりに追加 config.vm.box_url = "http://www.lyricalsoftware.com/downloads/centos65.box" $ vagrant up
しばらく待てばCentOS6.5用のboxイメージが入るので入り終わったら
$ vagrant ssh
でログイン
gem install middleman を実行するためにruby環境を整える。
rbenv + ruby+build のインストール
最新版のrubyを入れるために rbenv + ruby+buildをインストール。それぞれのREADME読めばここではまることは殆ど無いと思います。
$ git clone https://github.com/sstephenson/rbenv.git ~/.rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ . ~/.bash_profile $ git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
後工程で必要となるライブラリをyumでインストール
openssl / openssl-devel は rubyのビルドで必要となり、libyaml は middleman インストール時に必要となるため、先に突っ込んどきます。また、CentOs6.5にはすでにruby1.8.3がインストールされていますが、rbenvで管理するため抜いちゃいます。
# sudo yum remove ruby # sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm # sudo yum install openssl openssl-devel # sudo yum install libyaml
rubyのビルド
$ rbenv install 2.1.2
インストール完了後、デフォルトで利用するために
$ rbenv global 2.1.2
を実行
この状態のgemは古いため、最新版に更新
$ gem update --system $ gem -v 2.2.2
Middlemanのインストール
$ gem install middleman
ひたすら待ちましょう
インストールが完了後 $ middleman を実行するとモリモリエラーがでましたが、
$gem install ejs $gem install therubyracer $gem gem install eco
あたりを実行すればいいと思います。
エラー情報
インストール実行中に出たエラー
BUILD FAILED Inspect or clean up the working tree at /tmp/ruby-build.20140815022740.3291 Results logged to /tmp/ruby-build.20140815022740.3291.log ... The Ruby openssl extension was not compiled. Missing the OpenSSL lib?
rubyのビルド時にopenssl / openssl-devel が入ってないと出るっぽい
$ gem install middleman /home/vagrant/.rbenv/versions/2.1.2/lib/ruby/2.1.0/yaml.rb:4:in `<top (required)>': It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.
libyaml が入ってないと出るっぽい
$ middleman execjs/runtimes.rb:51:in `autodetect': Could not find a JavaScript runtime. See https://github.com/sstephenson/execjs for a list of available runtimes. (ExecJS::RuntimeUnavailable)
gem install therubyracer で解決するっぽい
vagrantcloudからの利用
今回作成したboxファイルは vagrantcloud上の sandpit/Middleman にアップしています。
Vagrantfileでconfig.vm.box = "sandpit/Middleman"を指定すれば利用できます。