ruby on railsで書かれたブログシステムtypoを動かしてみた

ruby on railsで書かれた有名なプロジェクトのソースコードを参考にしようということで、探し当てたのがtypo。

railsを使って書かれている。

 

typoって、有名らしいが聞いたことすら無かったため、ましてや使ったことすら無かったため、とりあえず動かしてみることにした。

前準備

Gitで最新ソースを持ってくる。

git clone git://github.com/fdv/typo.git

 

GitHub fdv/typoのページのDownload Typoからファイルをダウンロードすると、なぜか動作持に文字コード関連のエラーが出たため、Gitからcloneすることをオススメする。)

データベースの設定

いきなりbundle installしたいところだが、typoの場合はまずデータベースの設定をしないと、エラーになる。

 

database.ymlを作成

(とりあえず手軽なsqliteを使用する)

>gem install rails -v ‘3.0.10’

>cd config

config>copy database.yml.sqlite database.yml

config>cd ..

>bundle install
(略)
Installing bluecloth (2.2.0) with native extensions
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension
.

C:/Ruby193/bin/ruby.exe extconf.rb
checking for srand()… yes
checking for random()… no
checking for rand()… yes
checking for bzero() in string.h,strings.h… no
checking for strcasecmp()… yes
checking for strncasecmp()… yes
checking for mkdio.h… yes
checking for ruby/encoding.h… yes
creating extconf.h
creating Makefile

make
generating bluecloth_ext-i386-mingw32.def
compiling bluecloth.c
In file included from k:\home\bin\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../.
./../../include/windows.h:48:0,
from k:\home\bin\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../.
./../../include/winsock2.h:22,
from c:/Ruby193/include/ruby-1.9.1/ruby/win32.h:40,
from c:/Ruby193/include/ruby-1.9.1/ruby/defines.h:223,
from c:/Ruby193/include/ruby-1.9.1/ruby/ruby.h:67,
from c:/Ruby193/include/ruby-1.9.1/ruby.h:32,
from bluecloth.h:14,
from bluecloth.c:25:
k:\home\bin\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windef
.h:229:23: error: duplicate ‘unsigned’
k:\home\bin\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windef
.h:238:23: error: duplicate ‘unsigned’
k:\home\bin\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windef
.h:238:23: error: two or more data types in declaration specifiers
k:\home\bin\devkit\mingw\bin\../lib/gcc/mingw32/4.5.2/../../../../include/windef
.h:241:24: error: duplicate ‘unsigned’
make: *** [bluecloth.o] Error 1

Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/bluecloth
-2.2.0 for inspection.
Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/bluecloth-2.2.0/ext/gem_ma
ke.out
An error occured while installing bluecloth (2.2.0), and Bundler cannot continue
.
Make sure that gem install bluecloth -v '2.2.0' succeeds before bundling.

はいはい。

gemのインストールですんなりいく事は滅多に無いから、もう驚かない驚かない。

 

グーグル先生~ 。゚(゚´Д`゚)゚。

先生>(・∀・)っWindowsにBlueClothをインストールするとエラー

 

リンク先の内容に従い、C:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0\ext\bluecloth.hを以下のように修正。

(バージョンが同じ2.2.0であれば、ここに載せておいた修正済みソースをコピーしてbluecloth.hのテキストをまるまる置き換えればOK)

 

C:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0>rake gem
This Rakefile requires hoe (gem install hoe)

hoeがインストールされていないだって?

C:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0>gem list hoe –local

*** LOCAL GEMS ***

hoe (3.3.0)

あるじゃないか。

Rakefileをデバッグをする。

 

C:/Ruby193/lib/ruby/gems/1.9.1/gems/bluecloth-2.2.0/Rakefileにデバッグポイントを仕込む

 

デバッグモードでrakeを実行

>rdebug rake gem
(rdb:1) cont
C:/Ruby193/lib/ruby/gems/1.9.1/gems/bluecloth-2.2.0/Rakefile:20
require ‘hoe’
(rdb:1) p require ‘hoe’
Gem::LoadError Exception: Unable to activate hoe-3.3.0, because rake-10.0.1 conf
licts with rake (~> 0.8)

rakeのバージョンが10.0.1だとバージョンが高すぎてダメらしいということが分かった。

 

C:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0>gem list rake –local

*** LOCAL GEMS ***

rake (10.0.1, 0.9.2.2, 0.8.0)
rake-compiler (0.8.1)

インストールされているrakeのうち、ひと世代前の0.9.2.2を使用してみる。

 

C:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0>rake _0.9.2.2_ gem
(結果が大量に表示されるため略。)

C:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0>dir pkg

C:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0\pkg のディレクトリ

2012/11/20 07:57 <DIR> .
2012/11/20 07:57 <DIR> ..
2012/11/20 07:57 <DIR> bluecloth-2.2.0
2012/11/20 07:57 91,136 bluecloth-2.2.0.gem
1 個のファイル 91,136 バイト
3 個のディレクトリ 19,830,865,920 バイトの空き領域

成功。gemが作成された。

 

作成したgemからblueclothをインストール

C:\Ruby193\lib\ruby\gems\1.9.1\gems\bluecloth-2.2.0>gem install pkg/bluecloth-2.2.0.gem
Temporarily enhancing PATH to include DevKit…
Building native extensions. This could take a while…
Successfully installed bluecloth-2.2.0
1 gem installed
Installing ri documentation for bluecloth-2.2.0…
Installing RDoc documentation for bluecloth-2.2.0…

成功。感動的である。

・・・こんなことで感動しなくてもいい仕様だとうれしい。

 

さて、typoのプロジェクトに戻る。

>bundle install
(長いため略)
Your bundle is complete! Use bundle show [gemname] to see where a bundled gem
is installed.

やった。

 

データベースのマイグレーション。

git cloneしたプロジェクトだと、rakeのバージョンを0.9.x指定しないと動作しなかった。

>rake _0.9.5_ db:migrate
(略)

 

これもgit cloneしたプロジェクトの場合に必要になる。

db:migrateした後に、さらにdb:seedタスクの実行も必要。
ここ情報)

>rake _0.9.5_ db:seed

 

railsを起動

>rails s
=> Booting WEBrick
=> Rails 3.0.10 application starting in development on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
(Warning表示が多々出力。略。)
[2012-11-20 20:35:27] INFO WEBrick 1.3.1
[2012-11-20 20:35:27] INFO ruby 1.9.3 (2012-04-20) [i386-mingw32]
[2012-11-20 20:35:27] INFO WEBrick::HTTPServer#start: pid=9416 port=3000

 

ブラウザからlocalhost:3000にアクセス

お、動いてる。

 

これがtypoのダッシュボード。

localhost:3000/admin/

シンプルで使いやすそうだ。

 

初期状態で登録してある記事を開くとこのようなテンプレートになっていた。

 

記事投稿画面。

 

記事の登録も成功。

 

日本語で登録した文字も、文字化けなどもせずに閲覧できるようだ。

 
 

ここまで辿り着くのに、5時間ほど要した。

余談

railsで書かれたプロジェクトといえばredmineが有名だが、プロジェクトのテスト等を動作させるにはRMagickというgemをインストールする必要があって、このRMagickのインストールが曲者で、うまくいかずに断念した。

特にRedmineにこだわりが無いのであれば、typoのほうが構築は優しいと思うため、こちらをオススメする。

コメントを残す

トラックバック: http://pgnote.net/wp-trackback.php?p=814