yancha入れた

結構ヤンチャなチャットシステムYancha

動機

たぶんYanchaの開発にちょっと参加するかもしれないしシないかもしれないしそんな感じになってきたので、とりまローカルで動かせるようにしようと思いまして。

とりあえずperlを入れよう

Macとかだと最初からperlコマンドが使えるんだけど、いろいろライブラリを入れることになるし、できればシステムを汚したくないなーとか思ったので、plenvを入れることにした。plenvを入れておけば、cpanmで入れたライブラリは~/.plenv以下に入れられるので、掃除が楽!

plenvのインストール方法

俺は普段、Mac向けパッケージマネージャとしてhomebrewを使っているので、plenv自体はhomebrewから入れた。そして.bash_profile(人によっては.bashrcとか.zshrcとか.profileとか)に、このplenvを使えるようにするための設定を書き込む。

$ brew install plenv
$ echo 'export PATH="$HOME/.plenv/bin:$PATH"' >> ~/.bash_profile
$ echo 'PATH=$HOME/.plenv/shims:$PATH' >> ~/.bash_profile
$ source ~/.bash_profile #上記設定を読み込み、有効にする
perlを入れる

この時点ではまだplenvを入れただけなので、plenv配下で動くperlを入れよう。

$ perl -v 
This is perl 5, version 12, subversion 4 (v5.12.4) built for darwin-thread-multi-2level

$ plenv available
perl-5.18.0-RC4
perl-5.16.3
perl-5.14.4
perl-5.12.5
perl-5.10.1
perl-5.8.9
perl-5.6.2
perl5.005_04
perl5.004_05
perl5.003_07

$ plenv install 5.16.3
(ちょっとした時間の経過と共に、ズラズラと長いログが出る)

さて、これでperl 5.16.3が入った。ただ、この時点では「入っただけ」でまだ新しいperlへのパスが通っていないはず。

$ perl -v 
This is perl 5, version 12, subversion 4 (v5.12.4) built for darwin-thread-multi-2level

新しく入れたperlを有効にするために、plenvの設定を変えよう。

$ plenv global 5.16.3
$ perl -v 
This is perl 5, version 16, subversion 3 (v5.16.3) built for darwin-2level
cpanmも使えるようにする

あとは、cpanmで入れるライブラリがこのperlで使えるところに入るように、instal-cpanmを入れる。

$ plenv install-cpanm
$ which cpanm
~/.plenv/shims/cpanm

これで下準備はできた。

yanchaを入れる

yanchaはさすがにhomebrewには入っていないので、githubから引っ張ってこよう。
GitHub - uzulla/yancha: yancha is Yet Another Nerwork CHAt. (old name yairc) by Hachioji.pm

$ git clone git://github.com/uzulla/yancha.git
$ cd yancha
$ pwd
<yancha-path>

入れるだけならこれだけでいい。入れるだけなら。

yanchaの設定

入れるだけではなんの意味もない。ちゃんと動くようにするためにも、yanchaの設定をしよう。

sqlite3でDBを作る

yanchaはDBにmysqlとsqlite3とを使えるようになっているので、今回はsqlite3を使うことにする。
たぶんsqlite3はMacに標準で入ってるのでhomebrewの出番はいらないだろう。

$ which sqlite3
/usr/bin/sqlite3

sqlite3は他のSQL系DBと違って、DBサーバーを持たない。その代わり、任意の場所にDBファイルを用意して、そのファイルを用いて使うことになる。新しいDBファイルを作るには、sqlite3コマンドの引数にそのファイル名を与えればいいだけなのだが、yanchaにはDBの初期化ファイルが用意されているので、これも使ってDBを作ろう

$ pwd
<yancha-path>
$ sqlite3 yancha.db < db/init_sqlite.sql
依存モジュールを入れる

ライブラリ? モジュール? 何が違うの? 程度のperl力ですが、依存モジュールを入れます。ただ、いちいち自分で用意して入れる必要はなくて、下記コマンドを打てば一発なのです。

$ sh Install
依存モジュールをインストールします.
...
どのDB を使用しますか?(数字で指定してください).
1: MySQL
2: SQLite
2 #←入力
...
config.plを作成しますか?[y/n]
n #←入力

依存モジュールを入れる際、script/install_DBD.shが実行される。そこでDB関連設定の初期化もしてくれているっぽくて、自動的にconfig.plを生成してくれてるっぽい。そのため、その後の「config.plを作成しますか?[y/n]」では n を選択しよう。
もし、config.plが生成されなくても、config.pl.sampleをコピーして一部を修正すれば大丈夫だと思う。

$ cp config.pl.sample config.pl
$ vi config.pl

@@ -49,14 +49,14 @@
- 'dbi:mysql:database=name', 'user', 'password',
- {
- mysql_enable_utf8 => 1 ,
- mysql_auto_reconnect => 1,
- RaiseError => 1,
- }
+ #'dbi:mysql:database=name', 'user', 'password',
+ #{
+ # mysql_enable_utf8 => 1 ,
+ # mysql_auto_reconnect => 1,
+ # RaiseError => 1,
+ #}
# SQLite を使用したい場合は、上のMySQL 関連の設定を削除してから以下のコメントを解除して使用して下さい
- # 'dbi:SQLite:database=name', undef, undef, { sqlite_unicode => 1 }
+ 'dbi:SQLite:database=yancha.db', undef, undef, { sqlite_unicode => 1 }

デフォルトでは、MySQLの設定が有効になっているので、その部分をコメントアウトし、直後のsqliteの設定のコメントアウトを外す。その時、DB名(database=name となっているところの"name"部分)にDBのファイル名を指定するように。今回は「sqlite3 yancha.db < 〜」とDBファイルを作成しているので、"yancha.db"に書き換えている。

実行!

そんなこんなでひと通り設定が終わったので、yanchaを走らせてみよう。

$ sh start.sh

なんのログも出ないが、この状態で、ウェブブラウザから "localhost:3000" にアクセスすると、yanchaのトップページが表示されるようになる。やったねたe(ry

まとめると

ずらずらと長くなったが、実際にタイプする必要のあるコマンドは、

$ git clone git://github.com/uzulla/yancha.git
$ cd yancha
$ sqlite3 yancha.db < db/init_sqlite.sql
$ sh Install

だけだったりする。

参考サイト