6

私はrvmを試していて、ruby 1.9.2とrails 3をインストールしました。sqlite3-ruby gem を再インストールする必要があります (rvm はすべての gem を異なるバージョンの ruby​​ ごとに個別に保持するため)。

問題は、試してみると、次のようになることです。

     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-rubyをインストールしました(レール2.3.5を使用)このgemを(rvmシステム設定を使用して)再インストールしようとすると、インストールされませんruby 1.8.7環境で、どちらか。

rvm は gem を壊しましたか? 新しいgemは私のOSと互換性がないだけですか(私はopensuse linuxを実行しています)

編集: 通常の Ruby 環境で sqlite3-ruby を再インストール (再インストールではなくアンインストール) しようとすると、同じエラーが発生しますが、gem リストに sqlite3-ruby が表示されます (何らかの方法でバックアップから復元されているかどうかはわかりませんが、またはエラーにもかかわらずインストールする)

4

4 に答える 4

6

ブレナンの答えに投票したりコメントしたりしますが、それを行うのに十分なポイントがまだありません。他の人に役立つ場合に備えて、この回答を残すことにしました。しばらくこれに費やしました... Ruby1.9.1とRails3.0.3をインストールして動作させましたが、RVMに移行することにしました。指示に従ってRVMをインストールしてから、レールを再度インストールしました。すべてグレイビーソースです...次に、インストールをバンドルしようとしましたが、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.

以前の設定でSQLite3が機能していたことはわかっているので、元のディレクトリを探しに行きました。これはusr/local/sqlite3でした

それをパスとして使ってみました--with-sqlite3-dir=が、うまくいきませんでした。それから私は楽しみのために試しました:

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

そして、理由は何であれ、それはうまくいきました。だから、誰かが万が一に備えて

于 2011-01-20T01:13:56.007 に答える
4

あなたは試すことができます

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

それでもうまくいかない場合は、 sqlite3 を更新してみてください。3.6.4はかなり古いため、Ruby sqlite の新しいバージョンには古いものに問題があると思います。

(そして、この 2 つで異なる答えが得られる最も可能性の高い理由は、バージョン 2 と 3 の間に大きな変更があったためです。主に Unicode を扱っていると思いますが、3 ではなく 2 を使用しているプログラムもあります。)

于 2010-12-15T14:38:47.607 に答える
3

ソースからsqlite3をインストールすると、インクルードファイルが/usr/local/includeに配置されました

私は試した

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

そしてついに取り付け。

于 2010-12-30T17:41:07.113 に答える
0

ubuntu 9.04では、sqliteをダウンロードしてソースからインストールする必要もありました

于 2011-01-05T22:39:52.747 に答える