garbagetown

個人の日記です

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

古い。

というわけで 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.com8080 は自身の環境に読み替えてください。

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/ にアクセスしてみます。

f:id:garbagetown:20130716185405j:plain

問題無さそうです。

参考