2010-12-15 19 views
6

私はrvmを試していて、それにruby 1.9.2とレール3をインストールしました。私はsqlite3-ruby gemを再インストールする必要があります(rvmはrubyのバージョンごとにすべてのgemを別々に保つので)。Rails 3はrvmでsqlite3-ruby gemをインストールしませんか?

問題は、私がしようとしたとき、私は取得するには、次のとおりです。

 gem install sqlite3-ruby 
/home/jenny/.rvm/rubies/ruby-1.9.2-p0/bin/gem:4: warning: Insecure world writable dir /home/jenny/.rvm/gems/ruby-1.9.2-p0/bin in PATH, mode 040777 
Building native extensions. This could take a while... 
ERROR: Error installing sqlite3-ruby: 
    ERROR: Failed to build gem native extension. 

/home/jenny/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb 
checking for sqlite3.h... yes 
checking for sqlite3_libversion_number() in -lsqlite3... yes 
checking for rb_proc_arity()... yes 
checking for sqlite3_initialize()... yes 
checking for sqlite3_next_stmt()... yes 
checking for sqlite3_column_database_name()... yes 
checking for sqlite3_enable_load_extension()... no 
checking for sqlite3_load_extension()... no 
creating Makefile 

make 
gcc -I. -I/home/jenny/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/i686-linux -I/home/jenny/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1/ruby/backward -I/home/jenny/.rvm/rubies/ruby-1.9.2-p0/include/ruby-1.9.1 -I. -DHAVE_RB_PROC_ARITY -DHAVE_SQLITE3_INITIALIZE -DHAVE_SQLITE3_NEXT_STMT -DHAVE_SQLITE3_COLUMN_DATABASE_NAME -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include -D_FILE_OFFSET_BITS=64 -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -o exception.o -c exception.c 
In file included from ./sqlite3_ruby.h:42, 
       from exception.c:1: 
./backup.h:7: error: expected specifier-qualifier-list before ‘sqlite3_backup’ 
make: *** [exception.o] Error 1 

私は本当にそれを作るためにどのような非常にわからないんだけど...私は(レールにする前に、このマシン上のsqlite3のルビーをインストールしています2.3.5)この宝石を(rvmシステム設定を使って)再インストールしようとすると、それはruby 1.8.7環境ではインストールされません。

rvmは宝石を壊しましたか?新しい宝石は私のOSと互換性がありません(opensuse linuxを実行しています)

編集:定期的なルビー環境でsqlite3-rubyを再インストールしようとすると、同じエラーが表示されますしかし、その後、あなたが

gem install sqlite3-ruby -- --with-sqlite3-dir=/path/to/your/sqlite3 

そして、それが動作しない場合を試みることができる

+0

あなたのコンピュータにインストールされているsqliteのバージョンは? – bhamby

+1

"sqlite3 -version"と入力すると "3.6.4"となります – Jenny

+0

"sqlite -version"と入力すると "2.8.17" ...混乱します – Jenny

答えて

4

(わからない、それは何らかの形でエラーが発生してもバックアップから復元、またはインストールの場合)sqlite3のルビーは、私の宝石のリストに一覧表示され、 update your sqlite3にしようと思うかもしれませんが、3.6.4はかなり古く、私はRubyの新しいバージョンのsqliteが古いものに問題があると思います。

(そして2つのバージョン間で異なる答えが得られる最も一般的な理由は、バージョン2と3の間に大きな変化があったことです - 主にUnicodeを扱っています。私はソースからsqlite3のをインストールすると/は/ usr/localが

を含んで3)

+0

gemをインストールすると、私はsqlite3を更新しようとしました。yast(opensuseのパッケージマネージャー)を通じてそうすることは、バストだった。アップデートは "提供できない"と主張している。あなたのダウンロードリンクを試してみましょう... – Jenny

3

それが含まれたファイルを置く私は

gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib 

を試してみましたが、それは最終的にインストールされています。 Ubuntuの9.04に

0

また、私はsqliteのをダウンロードして、私が投票したりブレナンの答えにコメントが、私はまだそれを行うために十分なポイントを持っていないと思いますソース

6

からインストールする必要がありました。私はこの答えを他の人に役立てるために残しておきたいと思いました。私はこれをしばらく過ごしました...私はRuby 1.9.1とRails 3.0.3をインストールして動作させましたが、RVMに移行することに決めました。再び方向その後、インストールレール、すべての肉汁に応じRVMをインストールし...その後、インストールバンドルしようとしたとsqlite3ので、このエラーに走った:私は、私はSQLite3のは、私の以前の設定で前に働いていた知っているので、私は

Building native extensions. This could take a while... 
ERROR: Error installing sqlite3: 
    ERROR: Failed to build gem native extension. 

/Users/Jasonp/.rvm/rubies/ruby-1.9.2-p136/bin/ruby extconf.rb 
checking for sqlite3.h... yes 
checking for sqlite3_libversion_number() in -lsqlite3... no 
sqlite3 is missing. Try 'port install sqlite3 +universal' 
or 'yum install sqlite3-devel' and check your shared library search path (the 
location where your sqlite3 shared library is located). 
*** extconf.rb failed *** 
Could not create Makefile due to some reason, probably lack of 
necessary libraries and/or headers. Check the mkmf.log file for more 
details. You may need configuration options. 

元のdirを見つけるために行った。これはusr/local/sqlite3でした

私はこれを--with-sqlite3-dir=パスとして使用しようとしましたが動作しませんでした。私は試してみましたが、楽しみにしてみました:

gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib 

そして、それはうまくいきました。だから、ちょうど誰か

関連する問題