さくらのレンタルサーバーにDBD::SQLiteをインストールできた話

@nqounetです.

DBD::SQLiteと格闘して,なんとか勝利しました.

インストールの方法

1
$ cpanm DBD::SQLite --configure-args="-Wl,"

実際にこれでインストールできたのだけど,このあとperlbrew switch 5.16.3してインストールしたら,特にオプション無しで成功してしまった.

さっきまでこっちにこそインストールできなかったのに!

しかも,ログを見たら同じエラーもあるのに.

不思議だ.

インストールログを見よう

何度失敗したかわかりませんが,ログを見るとどうもこの辺にヒントがあるらしい.

1
2
cc -c  -I. -I/home/hoge/perl5/perlbrew/perls/perl-5.14.2/lib/site_perl/5.14.2/i386-freebsd/auto/DBI  -DHAS_FPSETMASK -DHAS_FLOATINGPOINT_H -fno-strict-aliasing -pipe -fstack-protector -I/usr/local/include -Wl,-Bsymbolic -O -O2    -DVERSION=\"1.40\"  -DXS_VERSION=\"1.40\" -DPIC -fPIC "-I/home/hoge/perl5/perlbrew/perls/perl-5.14.2/lib/5.14.2/i386-freebsd/CORE"  -DSQLITE_ENABLE_FTS4 -DSQLITE_ENABLE_FTS3_PARENTHESIS -DSQLITE_ENABLE_RTREE -DSQLITE_ENABLE_COLUMN_METADATA -DSQLITE_ENABLE_STAT3 -DNDEBUG=1 -DHAVE_USLEEP=1 -DTHREADSAFE=0 -D_XOPEN_SOURCE SQLite.c
cc: -Bsymbolic: linker input file unused because linking not done

エラーメッセージでぐぐったところ,オプションの-Bsymbolicを消して実行するとどうよ,というような事が書いてあった.

書き換えればOK,って言われても困るわけでして….

で,もしかすると,オプションで上書きができるかなと思ってやってみると,偶然うまくいきました.

ただ,ログを見たら,同じようなエラーになっていて,結局何故通ったのかわからない,という,腑に落ちない結果となりました.

cpanmのconfigure-argsオプション

cpanmのconfigure-argsオプションは,configureの引数にしてくれる感じかなぁ,と思うのですが,ログを見る限りでは,どこで作用したのかわかりませんでした.

まとめ

紆余曲折はありましたが,ひとまず目的は達成出来ました.

さくらのレンタルサーバーは,gitこそ使えない(ソースからインストールすれば使えるらしいですが)ものの,sshでログインできて,Perlもビルドできて,CPANモジュールもインストールできるので,レンタルサーバーにしては恵まれた環境です.

ただ,これから環境を作るのであれば,VPSのほうが何かと安心できる,というのが本音ですね.

レンタルサーバーだと,CGIとして動かすことになるので動作も遅いです.

メンテナンスを考えても,動作環境を考えても,Perlでサービスを開発するのであれば,レンタルサーバーは選択肢からは外すのが賢明です.

デプロイもサーバーがVPSなどであれば,cinnamonを使えば毎回同じように更新できますしね.

comments powered by Disqus
Hugo で構築されています。
テーマ StackJimmy によって設計されています。