ruby - Rails 3 不会用 rvm 安装 sqlite3-ruby gem?

标签 ruby rvm sqlite3-ruby

我正在试用 rvm,并用它安装了 ruby​​ 1.9.2 和 rails 3。我需要重新安装 sqlite3-ruby gem(因为 rvm 为不同版本的 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-ruby(使用 rails 2.3.5)当我尝试重新安装这个 gem(使用 rvm 系统设置)它没有也不要安装在 ruby​​ 1.8.7 环境中。

rvm 破坏了 gem 吗?新 gem 是否与我的操作系统不兼容(我正在运行 opensuse linux)

编辑:当我尝试在我的常规 ruby​​ 环境中重新安装(卸载而不是再次安装)sqlite3-ruby 时,我得到了同样的错误,但随后看到我的 gem 列表中列出的 sqlite3-ruby(不确定它是否以某种方式恢复从备份,或安装尽管有错误)

最佳答案

我会投票赞成或评论布伦南的回答,但我还没有足够的分数来做这件事。我想我会留下这个答案,以防它对其他人有帮助:我在这个上面花了一段时间......我安装了 Ruby 1.9.1 和 Rails 3.0.3 并且可以正常工作,但决定转向 RVM。根据说明安装了 RVM,然后再次安装 rails,所有肉汁......然后尝试捆绑安装并使用 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

无论出于何种原因,这都有效。所以,以防万一有人

关于ruby - Rails 3 不会用 rvm 安装 sqlite3-ruby gem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4450823/

相关文章:

ruby-on-rails - 如何在 Rails 中播种之前清除数据库

ruby-on-rails - 无法在 Sqlite3 中添加默认值为 NULL 的 NOT NULL 列

ruby - gem : difference between sqlite3 and sqlite3-ruby?

ruby-on-rails - OpenSSL 导致 Windows 上的 Rails 启动时间非常慢

ruby-on-rails - rake 数据库 :setup results in fe_sendauth no password supplied

java - 使用 ruby​​ python perl java 或其他方式进行谷歌优化的脚本驱动自动化

rvm 不使用最新的 jruby 版本 (1.7.12)

ruby - 为什么 [20, ..., 13, 14].min(2) => [13, 20]?

ruby - 使用 Mountain Lion、Xcode 4.5 和 RVM 安装 Ruby?

ruby - 新 rvm/ruby/pg/rails 设置的最佳安装流程