屋根裏Linux

Windows 8.1へのJekyllインストール(ブログ?生成ソフト)

投稿日:Jun 13, 2015 投稿者:camelinsect

現在CentOSで作っているWEBサーバーのバックアップをRaspberry Piで行う為にWordPressを静的HTMLに変換してくれるソフトを探していてJekyllに行き着きました。
日本語読みはジキル。ジキル博士とハイド氏のジキルです。

ていうか、これ使ったらWordPress自体要らなくね?
そもそもPHP+MySQLを使ったWordPressだとラズベリーパイには荷が重くて別サーバーでWEB運用してたけど、これならWEBサーバーをラズパイに戻せるかもしれない。
そんな淡い期待を抱いてレッツトライ!

ただ、Jekyllのウェブページ生成はけっこう重い作業なので、非力なラズパイ上で実行するよりメインマシンのWinで生成してラズパイに転送するほうが効率的。

ということで、今回はWindows上にJekyll実行環境を構築します。

参考URL

Jekyll本家
Jekyll本家の日本語訳
Run Jekyll on Windows 本家からリンクされてるWin環境構築マニュアル
(以下は見つけた日本語のWin環境構築サイト)
Windows 7/8 で Spending.jp クローンサイトを立ち上げるための Jekyll セットアップ手順
Windows 8 で Jekyll のインストール

検索で見つけた日本語の解説サイトはインストールしているJekyllやRubyのバージョンが古かったりしたので、本家で紹介されているWin用環境構築のマニュアルサイトを参考に(当時)最新安定板のver 2.5.3をインストールしてみました。

そもそもJekyllって何?

Jekyllはテキストファイルで作成した記事をテンプレートにぶち込んで静的なHTMLを出力してくれるソフトです。
Rubyというプログラミング言語で書かれてます。
ブログのように使えます。というかブログのように使うことを想定して作られてるっぽいです。

Jekyllのメリット

静的なHTMLなのでセキュリティ問題はほとんど起こさない。
逐一ページを生成しないのでサクサク表示できる。ラズパイでも十分実用に耐える。
データベースを使用しないのでバックアップが簡単。
マークダウン(HTML等を簡単に書ける書式)を使えるので記事を書くのが簡単。
まっさらな状態からサイト構造をカスタムできる。
シンタックスハイライト標準装備。
TEXで数式を綺麗に出力できる。これはプラグインかも(?)

Jekyllのデメリット

コメント欄、ピンバックやトラックバック等の動的な処理はできない。→外部サービスなど別で用意する。
思い通りのサイトにするのは結構大変。→Octpressやbootstrapなど簡単にブログを作れる拡張ソフトもある。
WEB上で記事を書けない。→基本自宅で書くので問題なし。Octpressとか使えば書けるのかな?

まとめ

というわけで
自由度が高くてサクサク軽いサイトにできるってのはいいね~
Raspberry Piで自宅サーバーを立てるような奇特な人には向いてると思う。

WordPressで書いた記事を残したいのでバックアップデータを読み込んでJekyllで変換します。
パーマリンクももちろんそのまま維持で。
最終的にはブログページだけでなくHP全体も出力できるよう構築したいと思ってます。

WindowsでJekyllの理由

Jekyllのウェブページ生成はけっこう重い作業なので、非力なラズパイ上で実行するよりメインマシンのWinで生成してラズパイに転送するほうが効率的。
でもWindowsは標準でRubyなどの開発環境が入ってないのでJekyllを使えるようにするのは結構面倒です。

他に考えた方法は、
①ラズパイで構築もやる
→これが一番手軽。でも変換に軽く15秒ほどかかる。その間サーバー処理も重くなる。処理が重くて完成形の表示を確認しながら作業ってのもできない。なので却下。

②別マシンにLinux入れてそこで構築
→我が家で一番スペックの高いメインマシンを使えないうえ、わざわざ環境構築して、ブログ書くために別のマシンを立ち上げるのが大げさすぎるので却下。
(いまはX200MAタンが居ますが、この時はいなかった。相変わらず記事はメインマシンで書いてます)

③いっそメインマシンをLinuxにしてしまうか。
→これは結構惹かれる。でもゲームもやりたいしなぁ、今までWINでできてたことを全部できるように環境を移行するのはそれなりに大変。うーん、いまは却下。やりたくなったら別の機会にやります。

④VMwareにLinuxを入れてそこで構築
→2よりはましだが、ブログを書くためにわざわざエミュレーターを立ち上げなきゃいけないのも大げさで嫌。却下。

⑤WinでJekyll環境を構築
→面倒だけどやっぱ他よりはこれが一番ましだな。ということで採用。

インストールするソフトとバージョンと概要

私が環境構築した時点のインストールソフトとそのバージョンです。

Ruby 2.0.0p598 : Jekyllを動かすためのスクリプト言語
Jekyll 2.5.3 : Jekyll本体
listen 2.7.11 : Jekyllのwatchモード(編集しながら随時変換するモード)を使うために必要
wdm 0.1.0 : 上と同様watchモードを使うために必要

(以下、シンタックスハイライターをpygmentsにする場合必要)
pygments.rb 0.6.0 : pygmentsをrubyから使えるようにするスクリプト
python 2.7.9 : pygmentsを動かすためのスクリプト言語。パイソン。
pip 1.5.6 : pythonのパッケージを管理するソフト(python ver 2.7.9には含まれてる)
setuptools 5.4.1 : ??
Pygments : シンタックスハイライター本体

(シンタックスハイライターにRougeを使う場合)
Rouge 1.7.3 : シンタックスハイライター本体

インストール手順

①RubyとReby DevKitをインストール
②Jekyllのインストール
③シンタックスハイライターのインストール
④–watchオプションを使えるようにする (オプション)
⑤Jekyllの実行

(以下はオプション)

Pygmentsのインストール

Pygmentsは現在Jekyll標準のシンタックスハイライターです。
Pythonという言語で書かれてるのをRubyから使っているので動かすために追加でPythonのインストールが必要になってちょっと面倒。
a-1 : Pythonのインストール
a-2 : pip, Pygmentsのインストール
a-3 : シンタックスハイライターをpygmentsに変更

–watchオプションを使えるようにする

–watchオプションをつけてJekyllを起動しておくとファイルを保存すると同時にhtmlへ変換してくれるのでブログを書く際に便利。結構重い処理です。メインPCにJekyllを入れようとした直接的な理由。さすがにメインPCではあまり重いと感じない。

では張り切ってインストール作業いってみよー!

インストール

①Rubyをインストール

以下サイトからRuby 2.0.0-p598 をダウンロード。
無印かx64かは自分の環境に合わせる。私はx64のほうで実施してます。
分からなかったら無印でいけるはず。
p598の部分はアップデートされると数字が増えてるので違っても気にしない。

RubyInstaller for Windows

同じ場所で公開されているDevKitも一緒にダウンロードしておきます。
For use with Ruby 2.0 and 2.1と書いてあるもののうち、
Rubyを無印にしたなら32bit version、x64にしたなら64bitバージョンでいいと思う。

ダウンロードできたらまずRubyをインストールします。
インストール時に以下オプションにチェックを入れておきます。
「Rubyの実行ファイルへ環境変数PATHを設定する」
(デフォルトではチェックが外れてます)
私はアプリケーションを全部Dドライブにぶち込んでるのでインストール先を変更。
さくっとインストールされます。

②続いてDevKitをインストールします。

先ほどダウンロードしておいた自己解凍ファイルを起動。
そっけないウィンドウが立ち上がるので、インストールしたいフォルダを記入してExtract!
私の場合は「D:\RubyDevKit」と入力しました。
ちなみに海外製ソフト(特にこういうコンソールで使うもの)をインストールする時はフォルダ名にスペースや全角文字を使わないのが無難です。

ここでおもむろにコマンドプロンプトを立ち上げます。
Windowsシステムツールの中に入ってます。

まずRubyのバージョン確認をかねてPATHが通ってるか確認。
ruby -v

ruby 2.0.0p598 (2014-11-13) [x64-mingw32]
とかバージョンが表示されればOKです。

次に先ほどDevKitをインストールしたフォルダに移動します。
私はDドライブにインストールしたので、まずd:でDドライブに移動して、cdでフォルダに移動します。
d:
cd RubyDevKit

インストールフォルダに移動したらruby dk.rb initとコマンドを打ってrubyにdevkitを認識させます。
ruby dk.rb init

以下表示が出てRubyに認識されます。
[INFO] found RubyInstaller v2.0.0 at D:/Ruby200-x64

Initialization complete! Please review and modify the auto-generated
‘config.yml’ file to ensure it contains the root directories to all
of the installed Rubies you want enhanced by the DevKit.

さらにruby dk.rb installとコマンドを打ってDevKitをインストールします。
ruby dk.rb install

以下の表示が出てDevKitがインストールされます。
[INFO] Updating convenience notice gem override for ‘D:/Ruby200-x64’
[INFO] Installing ‘D:/Ruby200-x64/lib/ruby/site_ruby/devkit.rb’

②Jekyllのインストール

JekyllはコマンドプロンプトからgemというRubyのパッケージ管理ソフトを使ってインストールします。
gem install jekyll

私の環境ではここでエラーが発生↓↓
ERROR: Could not find a valid gem ‘jekyll’ (>= 0), here is why:
Unable to download data from https://rubygems.org/ - SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://rubygems.org/latest_specs.4.8.gz)

どうやらgemがアップデートされてバージョンが上がっているようです。
以下のページを参考に対処します。
Workaround RubyGems’ SSL errors on Ruby for Windows (RubyInstaller)

まず、gemのバージョンを確認します。
gem -v
2.0.14

私の環境だと2.0.14がインストールされてました。

以下からバージョンアップされたgemをゲットします。
https://github.com/rubygems/rubygems/releases

2.0.xだと最新は2.0.15のようです。
拡張子が.gemのファイルをダウンロードしておきます。
保存場所はスペース等を含まないドライブ直下とかにしておきます。

コマンドプロンプトで以下を実行してインストール。–local以降には先ほど保存した.gemファイルのファイルパスを入力します。
gem install –local D:\rubygems-update-2.0.15.gem

Successfully installed rubygems-update-2.0.15
Parsing documentation for rubygems-update-2.0.15
Installing ri documentation for rubygems-update-2.0.15
1 gem installed

んで、アップデート。
update_rubygems –no-ri –no-rdoc

これでJekyllをインストールできるようになったはず。
gem install jekyll

無事インストールできました。

③シンタックスハイライターのインストール

まずは、簡単なほうから。Rubyで書かれたRougeを入れます。
gem install rouge
以上。簡単です。

続いて、標準シンタックスハイライターのPygmentsも入れます。ここはオプションなのでRougeでいい人は飛ばしてください。

まず、Pythonのインストール。以下からインストールファイルをGET。

https://www.python.org/downloads/

ver3は動かないようなので、ver2.7.9のほうをダウンロードして、インストールします。

インストールフォルダは他と同様にスペースや全角文字を含まない場所にします。
また、インストール途中のCustomize Python 2.7.9のところで、
Pythonのパスを追加するようにします。(デフォルトではoffになってます)

インストールしたら、ヘルプを表示してみます。
python -h

ヘルプが表示されればパスは通ってます。
コマンドプロンプトが立ち上がりっぱなしだとpathの変更が反映されないので、そういう場合はいったん立ち上げなおしてみてください。

次にPythonのパッケージ管理ソフトpipを入れます。と思いましたが、
pipのページにPython ver 2.7.9以降にはpipが既に入ってるとのこと。

もし必要なら以下のサイトにアクセスして、get-pip.pyを右クリック→名前を付けて保存で
C:\pipあたりのフォルダに保存します。
https://pip.pypa.io/en/latest/installing.html
んでコマンドプロンプトから以下実行。
cd c:\pip
python get-pip.py

今回はver 2.7.9を入れたのでpipのインストールを飛ばしてPygmentsをインストールします。

コマンドプロンプトで以下を実行。
python -m pip install Pygments

以下のように表示されてインストールが終了します。
Downloading/unpacking Pygments
Installing collected packages: Pygments
Successfully installed Pygments
Cleaning up…

④–watchオプションを使えるようにする

ファイルの変更を監視して自動でhtmlへ変更してくれるJekyllの–watchオプションを使えるようにします。

まず、wdmをインストール。
gem install wdm

以下文字コード関連のエラーが出てますが、ドキュメントがインスコできないだけっぽいので放置。
unable to convert “\x90” from ASCII-8BIT to UTF-8 for lib/wdm_ext.so, skipping
Installing ri documentation for wdm-0.1.0

listenのバージョンによってはうまく動かないようです。
確実に動くlistenのバージョンは2.7.5のようです。
以下のコマンドで確認すると、現在のバージョンは2.8.5
gem list | findstr listen

テストしてだめなら戻って別バージョンに入れ替えます。

⑤Jekyllの実行

ここから本家のチュートリアルでテストしてみます。
まず、適当にJekyll用フォルダを作ります。
私はEドライブ直下にJekyllフォルダを作りました。

コマンドプロンプトで作ったJekyllフォルダに移動します。
e:
cd jekyll

標準テンプレートの新サイト作成。
jekyll new test

Rougeをシンタックスハイライターに選択した人はコンフィグファイルを編集します。
上記で生成されたtestフォルダ内にある_config.ymlを編集します。
普通のテキストエディタ(メモ帳とかね。決してWordを使ってはいけない)で開いて修正できます。
ファイルの最後に以下一文を追加。
highlighter: rouge

それでは、新サイトのフォルダに移動して構築してみます。
cd test
jekyll serve

最後の綴りはserveです。serverではないので注意。

この状態でブラウザを立ち上げて、以下にアクセス。
http://localhost:4000/

以下画像のようなページが表示されれば構築完了です。
Jekyllページ画像 あとは、テンプレート作成なりbootstrap入れるなりして自分のページを作ります。
ここから先は環境構築から外れてJekyll自体の使い方になるので割愛します。
今後テンプレ作成手順もそのうち公開するかもしれません。

以上、お疲れ様でした。

camelinsect 2015年2月14日 作成 2015年6月13日 修正・公開

< 前の記事

【懺悔】ubuntuに乗り換えてしまいました【浮気】