最近 DBI を使い SQLite なんかをいじって勉強してました。特に難しい設定もいらなくて DBD::SQLite をインストールするだけで使える SQLite は便利なんですけど、どうせなら MySQL も使ってみようと思って CPAN Shell でいれようと思ったんですけど make の時点で躓きました。
調べたところによると gcc のバージョンが MySQL をビルドしたものと同じじゃないといけないらしいです。それから apt-get でいれた mysql_server じゃ mysql_config が入っていなくてコンパイラフラグの設定もわからなくて困りました。
小一時間調べて、どうにか入らないものかと自前でビルドしたりと頑張ってみたのですが、結局うまくいかなかったので、仕様がなく MySQL 自体から入れなおしてみました。
- コンパイラが MySQL をビルドしたものと同じでないといけない
- mysql_config を使って MySQL 自体をビルドしたフラグとかライブラリパスとか調べておく
- CPAN Shell じゃなくて自前で perl Makefile.pl でオプションをつける (なんとかしたらShell からも入るはずだけど)
- apt-get install dbd-mysql-perl (パッケージマネージャー) ならすんなり入る
とりあえず環境は coLinux debian etch , Perl は自前で /usr/local/bin 入れてある。
% cd ~/src
% wget http://ftp.iij.ad.jp/pub/db/mysql/Downloads/MySQL-5.0/mysql-5.0.37.tar.gz
% tar xvfz mysql-5.0.37.tar.gz
% cd mysql-5.0.37
% ./configure \
--prefix=/usr/local/mysql \
--with-charset=utf8 \
--with-extra-charsets=all \
--with-mysqld-user=mysql
% make && make test
% sudo make install
とりあえず MySQL をこんな感じでビルド。ここに書いてはないけど設定はしてあります。っで次に DBD::mysql を入れるんですけど DBI が必要なんでそっちを先に入れておく。
% cd ~/src
% wget http://search.cpan.org/CPAN/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.004.tar.gz
% tar xvfz DBD-mysql-4.004.tar.gz
% cd DBD-mysql-4.004
% perl Makefile.pl \
--cflags="-I/usr/local/mysql/include/mysql" \
--libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lcrypt -lnsl -lm"
% make && make test
% sudo make install
cflags と libs は mysql_config で調べておく。僕はこんな感じでインストール出来ました。
っということで DBD::mysql も入ったことですし次は Class::DBI をいじって使い方を覚えていこうかと、って思っていたんですけど Catalyst は DBIx::Class なんですよねぇたしか。
コメントする