Vagrant 上の Ubuntu 12.04 に Jekyll を入れてみた
間もなくリリースされそうな Twitter Bootstrap 3 を検証するために proxy 環境下の Windows7 に Vagrant で Ubuntu 12.04 を入れてみた - garbagetown で構築した検証環境上に jekyll をインストールします。
ruby と gem のアップデート
jekyll インストールガイド によると素朴に gem install jekyll
とすればインストールできるそうですが、念のため ruby と gem のバージョンを確認してみます。
vagrant@precise64:~$ ruby -v ruby 1.8.7 (2012-02-08 patchlevel 358) [x86_64-linux] vagrant@precise64:~$ gem -v 1.6.2
古い。
「ruby1.8をまだ使ってるような奴に娘をやれるわけがないだろ!」「お父さん・・・」
— こいわ (@koiwa) July 11, 2013
というわけで ruby をアップデートします。
一般的には rvm を使うところかと思いますが、ここでは Installing Ruby 1.9.3 on Ubuntu 12.04 Precise Pengolin (without RVM) に従って、rvm は使わずにインストールしてみます。
vagrant@precise64:~$ sudo apt-get update vagrant@precise64:~$ sudo apt-get install ruby1.9.1 ruby1.9.1-dev rubygems1.9.1 irb1.9.1 ri1.9.1 rdoc1.9.1 build-essential libopenssl-ruby1.9.1 libssl-dev zlib1g-dev Reading package lists... Done Building dependency tree Reading state information... Done (snip) After this operation, 30.0 MB of additional disk space will be used. Get:1 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main libssl-dev amd64 1.0.1-4ubuntu5.10 [1,573 kB] Get:2 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main libssl1.0.0 amd64 1.0.1-4ubuntu5.10 [1,048 kB] Get:3 http://us.archive.ubuntu.com/ubuntu/ precise/main libyaml-0-2 amd64 0.1.4-2 [56.9 kB] Get:4 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main libruby1.9.1 amd64 1.9.3.0-1ubuntu2.7 [4,101 kB] Get:5 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main ruby1.9.1 amd64 1.9.3.0-1ubuntu2.7 [37.0 kB] Get:6 http://us.archive.ubuntu.com/ubuntu/ precise-updates/universe ri1.9.1 all 1.9.3.0-1ubuntu2.7 [1,997 kB] Get:7 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main ruby1.9.1-dev amd64 1.9.3.0-1ubuntu2.7 [1,212 kB] (snip) Setting up ruby1.9.1-dev (1.9.3.0-1ubuntu2.7) ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place
続いてシステムが使うデフォルトの ruby を変更します。シンボリックリンクよりも update-alternatives を使うのが Ubuntu の作法 とのこと。
vagrant@precise64:~$ sudo update-alternatives --install /usr/bin/ruby ruby /usr/bin/ruby1.9.1 400 --slave /usr/share/man/man1/ruby.1.gz ruby.1.gz /usr/share/man/man1/ruby1.9.1.1.gz --slave /usr/bin/ri ri /usr/bin/ri1.9.1 --slave /usr/bin/irb irb /usr/bin/irb1.9.1 --slave /usr/bin/rdoc rdoc /usr/bin/rdoc1.9.1 update-alternatives: warning: forcing reinstallation of alternative /usr/bin/ruby1.9.1 because link group ruby is broken. vagrant@precise64:~$ sudo update-alternatives --config ruby There is only one alternative in link group ruby: /usr/bin/ruby1.9.1 Nothing to configure. vagrant@precise64:~$ sudo update-alternatives --config gem There is only one alternative in link group gem: /usr/bin/gem1.9.1 Nothing to configure.
正直なんだかダメっぽいメッセージが出ているような気もするのですが
vagrant@precise64:~$ sudo update-alternatives --display ruby ruby - auto mode link currently points to /usr/bin/ruby1.9.1 /usr/bin/ruby1.9.1 - priority 400 (snip) Current 'best' version is '/usr/bin/ruby1.9.1'.
としたら
vagrant@precise64:~$ ruby -v ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux] vagrant@precise64:~$ gem -v 1.8.11
となったので無事にアップデートされた模様。
jekyll のインストール
いよいよ jekyll をインストール!と行きたいところですが、ここでも proxy の設定が必要です。proxy.example.com
と 8080
は自身の環境に読み替えてください。
vagrant@precise64:~$ vi ~/.gemrc http_proxy: http://your.proxy.com:8080
これで、ようやく jekyll をインストールすることができます。
vagrant@precise64:~$ sudo gem install jekyll Fetching: liquid-2.5.0.gem (100%) Fetching: fast-stemmer-1.0.2.gem (100%) Building native extensions. This could take a while... (snip) Successfully installed colorator-0.1 Successfully installed jekyll-1.0.3 15 gems installed (snip) Installing ri documentation for safe_yaml-0.7.1... Installing ri documentation for colorator-0.1... Installing ri documentation for jekyll-1.0.3... (snip) Installing RDoc documentation for safe_yaml-0.7.1... Installing RDoc documentation for colorator-0.1... Installing RDoc documentation for jekyll-1.0.3...
無事にインストールできたようなので確認します。
vagrant@precise64:~$ jekyll --version jekyll 1.0.3
問題なさそうです。
git のインストール
jekyll だけ入れても面白くも何ともないので Twitter Bootstrap 3 のソースをダウンロードしてドキュメントを表示してみます。
Twitter Bootstrap 3 のソースは zip で落としても良いですし、BOWER で入れても良いようですが、ここでは後々も使うと思うので git で取得してみます。
まずは git をインストールします。
vagrant@precise64:~$ sudo apt-get install git (snip) Need to get 6,821 kB of archives. After this operation, 15.5 MB of additional disk space will be used. Do you want to continue [Y/n]? y Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main liberror-perl all 0.17-1 [23.8 kB] Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main git-man all 1:1.7.9.5-1 [630 kB] Get:3 http://us.archive.ubuntu.com/ubuntu/ precise/main git amd64 1:1.7.9.5-1 [6,087 kB] Get:4 http://us.archive.ubuntu.com/ubuntu/ precise/main patch amd64 2.6.1-3 [80.2 kB] (snip) Setting up git-man (1:1.7.9.5-1) ... Setting up git (1:1.7.9.5-1) ... Setting up patch (2.6.1-3) ...
無事にインストールできたようなので確認します。
vagrant@precise64:~$ git --version git version 1.7.9.5
問題無さそうです。
git の設定
引き続き git の初期設定を行います。ユーザー名やメールアドレス、プロキシサーバーの情報は自身の情報で読み替えてください。
vagrant@precise64:~$ git config --global user.name "garbagetown" vagrant@precise64:~$ git config --global user.email "garbagetown@gmail.com" vagrant@precise64:~$ git config --global http.proxy http://your.proxy.com:8080 vagrant@precise64:~$ git config --global https.proxy http://your.proxy.com:8080
設定が反映されていることを確認します。
vagrant@precise64:~$ git config --list user.name=garbagetown user.email=garbagetown@gmail.com http.proxy=http://your.proxy.com:8080 https.proxy=http://your.proxy.com:8080
git リポジトリのクローン
適当なディレクトリを掘ったら GitHub から Twitter Bootstrap のリポジトリ をクローンします。
vagrant@precise64:~$ mkdir -p ~/devel/repo vagrant@precise64:~$ cd ~/devel/repo vagrant@precise64:~/devel/repo$ git clone https://github.com/twitter/bootstrap.git Cloning into 'bootstrap'... remote: Counting objects: 36483, done. remote: Compressing objects: 100% (11945/11945), done. remote: Total 36483 (delta 25398), reused 35352 (delta 24333) Receiving objects: 100% (36483/36483), 27.43 MiB | 735 KiB/s, done. Resolving deltas: 100% (25398/25398), done.
クローンしたリポジトリの master ブランチはまだバージョン 2.3.2 の内容なので、3.0.0 のリソースが格納されているリモートブランチを fetch して checkout します。
vagrant@precise64:~/devel/repo$ cd bootstrap/ vagrant@precise64:~/devel/repo/bootstrap$ git branch -a * master remotes/origin/3.0.0-wip remotes/origin/HEAD -> origin/master remotes/origin/gh-pages remotes/origin/master vagrant@precise64:~/devel/repo/bootstrap$ git fetch vagrant@precise64:~/devel/repo/bootstrap$ git checkout -b 3.0.0-wip origin/3.0.0-wip Branch 3.0.0-wip set up to track remote branch 3.0.0-wip from origin. Switched to a new branch '3.0.0-wip'
jekyll の起動
それでは jekyll サーバーを起動して Twitter Bootstrap 3 のドキュメントを表示してみます。
vagrant@precise64:~/devel/repo/bootstrap$ git branch -a * 3.0.0-wip master remotes/origin/3.0.0-wip remotes/origin/HEAD -> origin/master remotes/origin/gh-pages remotes/origin/master vagrant@precise64:~/devel/repo/bootstrap$ jekyll serve Configuration file: /home/vagrant/devel/repo/bootstrap/_config.yml Source: ./docs Destination: ./_gh_pages Generating... Liquid Exception: incompatible character encodings: ISO-8859-1 and UTF-8 in css.html error: incompatible character encodings: ISO-8859-1 and UTF-8. Use --trace to view backtrace
コケた。いろいろ調べてみたところ 言語をメリケン仕様にしろクズ と言うことらしい。
都度設定するのは面倒なので潔く .profile に書いてしまいます。
vagrant@precise64:~/devel/repo/bootstrap$ vi ~/.profile (snip) export LC_ALL=en_US.UTF-8 export LANG=en_US.UTF-8
設定を反映して再度チャレンジ。
vagrant@precise64:~/devel/repo/bootstrap$ source ~/.profile vagrant@precise64:~/devel/repo/bootstrap$ jekyll serve Configuration file: /home/vagrant/devel/repo/bootstrap/_config.yml Source: ./docs Destination: ./_gh_pages Generating... done. [2013-07-12 05:43:24] INFO WEBrick 1.3.1 [2013-07-12 05:43:24] INFO ruby 1.9.3 (2011-10-30) [x86_64-linux] [2013-07-12 05:43:24] INFO WEBrick::HTTPServer#start: pid=9846 port=9001
無事に起動したようなので、web ブラウザから http://192.168.33.10:9001/ にアクセスしてみます。
問題無さそうです。