Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
6
Help us understand the problem. What is going on with this article?
@moppem@github

Windows 7/8 で Spending.jp クローンサイトを立ち上げるための Jekyll セットアップ手順

More than 5 years have passed since last update.

Where Does My Money Go? 石巻版制作にあたり Windows 環境で Jekyll をセットアップ、クローンサイトを立ち上げましたのでその手順を共有します。

Windows PC での「Spending.jp クローンサイトの立ち上げ手順 (OpenSpending 対応版)」実行マニュアル』に「windows だとこの作業はいろいろ大変なので (^_^;」とあるように一筋縄ではいかない作業でしたが、ポイントさえ押さえればそれ程複雑な作業ではありません。

このドキュメントは、Ruby/Jekyll をインストールした事がない方、もしくはインストールされていない Windows 7/8 PC を対象に書かれています。
私が試行した環境は Windows7 32bit, Windows8 64bit です。
どちらの環境でも同じ操作を実施しました。

RubyInstaller for Windowsサイトの Download Archives より、Ruby 1.9.3-p194 をダウンロード、インストールします。
Setup-Ruby1.9.3-p194.png

最新版でなく 1.9.3-p194 なのは、Spending.jp でこのバージョンが使われているためです。
参照:『Spending.jp クローンサイトの立ち上げ手順 (OpenSpending 対応版)

余談:
実は最初に最新版(今回はRuby 2.0.0-p195)で構築しようとしたのですが、結果的には断念しました。すみません。

同じく Download Archives より DevKits をダウンロードします。
今回は DevKit-tdm-32-4.5.2-20110712-1620-sfx.exe を使いました。
実行するとパスを聞かれるので、先ほど Ruby がインストールされた C:\Ruby193 の下に dev というフォルダを作り、C:\Ruby193\dev を指定しました。C:\devkits などでも問題ありません。

コマンドプロンプト(管理者権限不要)で DevKit の初期化、インストール

ruby dk.rb init

C:\Ruby193\dev>ruby dk.rb init
[INFO] found RubyInstaller v1.9.3 at C:/Ruby193

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

C:\Ruby193\dev>ruby dk.rb install
[INFO] Updating convenience notice gem override for 'C:/Ruby193'
[INFO] Installing 'C:/Ruby193/lib/ruby/site_ruby/devkit.rb'

動作確認
gem install rdiscount --platform=ruby
ruby -rubygems -e "require 'rdiscount'; puts RDiscount.new('**Hello World**').to_html"

C:\Ruby193\dev>gem install rdiscount --platform=ruby
Fetching: rdiscount-2.1.6.gem (100%)
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Successfully installed rdiscount-2.1.6
1 gem installed
Installing ri documentation for rdiscount-2.1.6...
Installing RDoc documentation for rdiscount-2.1.6...

C:\Ruby193\dev>ruby -rubygems -e "require 'rdiscount'; puts RDiscount.new('**Hello World**').to_html"
<p><strong>Hello World</strong></p>

Jekyll のインストール

gem install jekyll

C:\Ruby193\dev>gem install jekyll
Temporarily enhancing PATH to include DevKit...
Building native extensions.  This could take a while...
Fetching: classifier-1.3.3.gem (100%)
Fetching: directory_watcher-1.4.1.gem (100%)
Fetching: syntax-1.0.0.gem (100%)
Fetching: maruku-0.6.1.gem (100%)
Fetching: kramdown-1.0.2.gem (100%)
Fetching: yajl-ruby-1.1.0-x86-mingw32.gem (100%)
Fetching: posix-spawn-0.3.6.gem (100%)
Building native extensions.  This could take a while...
Fetching: pygments.rb-0.5.1.gem (100%)
Fetching: highline-1.6.19.gem (100%)
Fetching: commander-4.1.3.gem (100%)
Fetching: safe_yaml-0.7.1.gem (100%)
Fetching: colorator-0.1.gem (100%)
Fetching: jekyll-1.0.3.gem (100%)
Successfully installed fast-stemmer-1.0.2
Successfully installed classifier-1.3.3
Successfully installed directory_watcher-1.4.1
Successfully installed syntax-1.0.0
Successfully installed maruku-0.6.1
Successfully installed kramdown-1.0.2
Successfully installed yajl-ruby-1.1.0-x86-mingw32
Successfully installed posix-spawn-0.3.6
Successfully installed pygments.rb-0.5.1
Successfully installed highline-1.6.19
Successfully installed commander-4.1.3
Successfully installed safe_yaml-0.7.1
Successfully installed colorator-0.1
Successfully installed jekyll-1.0.3
14 gems installed
Installing ri documentation for fast-stemmer-1.0.2...
Installing ri documentation for classifier-1.3.3...
Installing ri documentation for directory_watcher-1.4.1...
Installing ri documentation for syntax-1.0.0...
Installing ri documentation for maruku-0.6.1...
Couldn't find file to include 'MaRuKu.txt' from lib/maruku.rb
Installing ri documentation for kramdown-1.0.2...
Installing ri documentation for yajl-ruby-1.1.0-x86-mingw32...
Installing ri documentation for posix-spawn-0.3.6...
Installing ri documentation for pygments.rb-0.5.1...
unable to convert U+2014 from UTF-8 to Windows-31J for lib/pygments/popen.rb, skipping
Installing ri documentation for highline-1.6.19...
Installing ri documentation for commander-4.1.3...
Installing ri documentation for safe_yaml-0.7.1...
Installing ri documentation for colorator-0.1...
Installing ri documentation for jekyll-1.0.3...
Installing RDoc documentation for fast-stemmer-1.0.2...
Installing RDoc documentation for classifier-1.3.3...
Installing RDoc documentation for directory_watcher-1.4.1...
Installing RDoc documentation for syntax-1.0.0...
Installing RDoc documentation for maruku-0.6.1...
Couldn't find file to include 'MaRuKu.txt' from lib/maruku.rb
Installing RDoc documentation for kramdown-1.0.2...
Installing RDoc documentation for yajl-ruby-1.1.0-x86-mingw32...
Installing RDoc documentation for posix-spawn-0.3.6...
Installing RDoc documentation for pygments.rb-0.5.1...
unable to convert U+2014 from UTF-8 to Windows-31J for lib/pygments/popen.rb, skipping
Installing RDoc documentation for highline-1.6.19...
Installing RDoc documentation for commander-4.1.3...
Installing RDoc documentation for safe_yaml-0.7.1...
Installing RDoc documentation for colorator-0.1...
Installing RDoc documentation for jekyll-1.0.3...

いくつかエラーが出ていますが問題ありませんでした。

以下のようなエラーが出た場合は環境変数 http_proxy set http_proxy=プロキシサーバー を設定して下さい。

C:\Ruby193\dev>gem install jekyll
ERROR:  Could not find a valid gem 'jekyll' (>= 0) in any repository
ERROR:  While executing gem ... (Gem::RemoteFetcher::FetchError)
    Errno::ETIMEDOUT: A connection attempt failed because the connected party di
d not properly respond after a period of time, or established connection failed
because connected host has failed to respond. - connect(2) (http://rubygems.org/
latest_specs.4.8.gz)

この後は『Spending.jp クローンサイトの立ち上げ手順 (OpenSpending 対応版)』通りなのですが、少し補足します。

今回初めて Ruby(1.9.3-p194) をインストールした方は
rbenv local 1.9.3-p194
は必要ありません。
参照:rbenvでRubyの環境を作る

gem install bundler から実行します。

E:\src\Git>gem install bundler
Fetching: bundler-1.3.5.gem (100%)
Successfully installed bundler-1.3.5
1 gem installed
Installing ri documentation for bundler-1.3.5...
Installing RDoc documentation for bundler-1.3.5...

cloneしたプロジェクトのディレクトリ(今回の例では E:\src\Git\IshinomakiSpending )へ移動して、

bundle install --path vendor/bundler

E:\src\Git\IshinomakiSpending>bundle install --path vendor/bundler
Fetching source index from https://rubygems.org/
Could not verify the SSL certificate for https://rubygems.org/.
There is a chance you are experiencing a man-in-the-middle attack, but most
likely your system doesn't have the CA certificates needed for verification. For
information about OpenSSL certificates, see bit.ly/ruby-ssl. To connect without
using SSL, edit your Gemfile sources and change 'https' to 'http'.

エラーになります。

bundle install で Gem::RemoteFetcher::FetchError になるCommentsAdd Starthanks3dsShinji_041』を参考に Gemfile をテキストエディタで開き、httpshttp に変更しました。

修正前

source 'https://rubygems.org'

修正後

source 'http://rubygems.org'

再度 bundle install --path vendor/bundler

E:\src\Git\IshinomakiSpending>bundle install --path vendor/bundler
Fetching gem metadata from http://rubygems.org/........
Fetching gem metadata from http://rubygems.org/..
Resolving dependencies...
Installing rake (10.0.3)
Installing RedCloth (4.2.9)
Installing fast-stemmer (1.0.2)
Installing classifier (1.3.3)
Installing directory_watcher (1.4.1)
Installing kramdown (0.13.8)
Installing liquid (2.4.1)
Installing syntax (1.0.0)
Installing maruku (0.6.0)
Installing posix-spawn (0.3.6)
Installing yajl-ruby (1.1.0)
Installing pygments.rb (0.3.7)
Installing jekyll (0.12.0)
Installing rdiscount (1.6.8)
Installing redcarpet (2.1.1)
Using bundler (1.3.5)
Your bundle is complete!
It was installed into ./vendor/bundler

成功しました。

これでセットアップ完了のはずなので
bundle exec rake preview してみます。

E:\src\Git\IshinomakiSpending>bundle exec rake preview
jekyll --server --auto
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/maruku-0.6.0/lib/maruku/input/parse_doc.rb:22:in `<top (required)>': iconv will be deprecated in the future, use String#encode instead.
Configuration from E:/src/Git/IshinomakiSpending/_config.yml
Auto-regenerating enabled: . -> ./_site
[2013-07-02 15:23:56] regeneration: 1986 files changed
YAML Exception reading default.html: invalid byte sequence in Windows-31J
YAML Exception reading default2.html: invalid byte sequence in Windows-31J
YAML Exception reading about.html: invalid byte sequence in Windows-31J
YAML Exception reading bubbletree-map.html: invalid byte sequence in Windows-31J

YAML Exception reading bubbletree.html: invalid byte sequence in Windows-31J
YAML Exception reading contact.html: invalid byte sequence in Windows-31J
[2013-07-02 15:23:56] INFO  WEBrick 1.3.1
[2013-07-02 15:23:56] INFO  ruby 1.9.3 (2012-04-20) [i386-mingw32]
[2013-07-02 15:23:56] INFO  WEBrick::HTTPServer#start: pid=7772 port=4000
YAML Exception reading index.html: invalid byte sequence in Windows-31J
YAML Exception reading index2.html: invalid byte sequence in Windows-31J
YAML Exception reading links.html: invalid byte sequence in Windows-31J
YAML Exception reading sources.html: invalid byte sequence in Windows-31J
YAML Exception reading team.html: invalid byte sequence in Windows-31J
YAML Exception reading basic.yml: invalid byte sequence in Windows-31J
YAML Exception reading threshold.yml: invalid byte sequence in Windows-31J
Liquid Exception: invalid byte sequence in Windows-31J in default
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/liquid-2.4.1/lib/liquid/template.rb:141:in `split'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/liquid-2.4.1/lib/liquid/template.rb:141:in `tokenize'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/liquid-2.4.1/lib/liquid/template.rb:58:in `parse'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/liquid-2.4.1/lib/liquid/template.rb:46:in `parse'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/jekyll-0.12.0/lib/jekyll/convertible.rb:101:in `do_layout'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/jekyll-0.12.0/lib/jekyll/post.rb:195:in `render'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:200:in `block in render'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:199:in `each'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:199:in `render'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/jekyll-0.12.0/lib/jekyll/site.rb:41:in `process'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/jekyll-0.12.0/bin/jekyll:253:in `block in <top (required)>'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher.rb:580:in `call'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher.rb:580:in `block in notify_observers'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher.rb:579:in `each'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher.rb:579:in `notify_observers'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher.rb:334:in `block in initialize'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher/scanner.rb:224:in `call'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher/scanner.rb:224:in `notify'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher/scanner.rb:102:in `run_once'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher/scanner.rb:150:in `run_loop'
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/directory_watcher-1.4.1/lib/directory_watcher/scanner.rb:45:in `block in start'
Build Failed

エラーになります。

Windows環境でinvalid byte sequence in Windows-31Jになる場合(Ruby 1.9.2)』を参考に、
set LANG=ja_JP.UTF-8 します。

再度 bundle exec rake preview

E:\src\Git\IshinomakiSpending>bundle exec rake preview
jekyll --server --auto
E:/src/Git/IshinomakiSpending/vendor/bundler/ruby/1.9.1/gems/maruku-0.6.0/lib/maruku/input/parse_doc.rb:22:in `<top (required)>': iconv will be deprecated in the future, use String#encode instead.
Configuration from E:/src/Git/IshinomakiSpending/_config.yml
Auto-regenerating enabled: . -> ./_site
[2013-07-02 15:28:02] regeneration: 1986 files changed
[2013-07-02 15:28:03] INFO  WEBrick 1.3.1
[2013-07-02 15:28:03] INFO  ruby 1.9.3 (2012-04-20) [i386-mingw32]
[2013-07-02 15:28:03] INFO  WEBrick::HTTPServer#start: pid=6752 port=4000

動きました!

http://localhost:4000/ にアクセスして、サイトが表示されれば終了です。

お疲れ様でした。

6
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
6
Help us understand the problem. What is going on with this article?