カテゴリ設定が難しいー。webにするかRubyにするか悩んだけど、とりあえずwebで。
制作とは関係ないんですが大学の研究室で作業しててつまづいたのでメモ。
研究室で研究用サーバとしてCentOS5.4な子を設置しています。で、Ruたんが勝手にRuby放り込んでるわけです。いいじゃん?研究で使うんだし。
それで、gemsでsqlite3-rubyをインストールしようとしたら、
gem install sqlite3-ruby Building native extensions. This could take a while... ERROR: Error installing sqlite3-ruby: ERROR: Failed to build gem native extension. /usr/bin/ruby extconf.rb checking for #include <sqlite3.h> ... yes checking for sqlite3_libversion_number() in -lsqlite3... yes checking for rb_proc_arity()... no checking for sqlite3_column_database_name()... no checking for sqlite3_enable_load_extension()... no checking for sqlite3_load_extension()... no creating Makefile make gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -I/usr/local/include -I/opt/local/include -I/usr/include -D_FILE_OFFSET_BITS=64 -fPIC -g -O2 -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -c sqlite3.c sqlite3.c: In function ‘Init_sqlite3_native’: sqlite3.c:27: 警告: implicit declaration of function ‘sqlite3_initialize’ gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -I/usr/local/include -I/opt/local/include -I/usr/include -D_FILE_OFFSET_BITS=64 -fPIC -g -O2 -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -c exception.c gcc -I. -I. -I/usr/lib/ruby/1.8/i686-linux -I. -I/usr/local/include -I/opt/local/include -I/usr/include -D_FILE_OFFSET_BITS=64 -fPIC -g -O2 -O3 -Wall -Wcast-qual -Wwrite-strings -Wconversion -Wmissing-noreturn -Winline -c database.c database.c: In function ‘deallocate’: database.c:17: 警告: implicit declaration of function ‘sqlite3_next_stmt’ database.c:17: 警告: assignment makes pointer from integer without a cast database.c: In function ‘initialize’: database.c:76: 警告: implicit declaration of function ‘sqlite3_open_v2’ database.c:79: error: ‘SQLITE_OPEN_READWRITE’ undeclared (first use in this function) database.c:79: error: (Each undeclared identifier is reported only once database.c:79: error: for each function it appears in.) database.c:79: error: ‘SQLITE_OPEN_CREATE’ undeclared (first use in this function) database.c: In function ‘set_sqlite3_func_result’: database.c:277: error: ‘sqlite3_int64’ undeclared (first use in this function) database.c: In function ‘rb_sqlite3_func’: database.c:311: 警告: passing argument 1 of ‘ruby_xcalloc’ as signed due to prototype database.c: In function ‘rb_sqlite3_step’: database.c:378: 警告: passing argument 1 of ‘ruby_xcalloc’ as signed due to prototype database.c: In function ‘load_extension’: database.c:589: 警告: implicit declaration of function ‘sqlite3_load_extension’ database.c: In function ‘enable_load_extension’: database.c:610: 警告: implicit declaration of function ‘sqlite3_enable_load_extension’ make: *** [database.o] エラー 1 Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.0 for inspection. Results logged to /usr/lib/ruby/gems/1.8/gems/sqlite3-ruby-1.3.0/ext/sqlite3/gem_make.out
こんなこと言われてインストールできないわけです。
Google先生に聞いたりしていろいろやってたんですが、うまく行かない……前にインストールしたときはうまくできたのになぁ……むーん……
というわけで前にやったときはうまく行った=古いバージョンならいけるんじゃないでしょうかということで。
最新版が1.3.0で一個古いやつは1.2.5っぽいのでそっちを入れてみる。
gem install sqlite3-ruby --version=1.2.5
これでいったら普通にインストール成功。うーん、なんでだろ?
とりあえず動けばいいので今回はこれでよしとする。また今度調べてみよう・x・