首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3不会安装带有rvm的sqlite3-ruby gem?

Rails 3不会安装带有rvm的sqlite3-ruby gem?
EN

Stack Overflow用户
提问于 2010-12-15 22:14:31
回答 4查看 4.3K关注 0票数 6

我正在试用rvm,并安装了ruby 1.9.2和rails 3。我需要重新安装sqlite3-ruby gem (因为rvm为不同版本的ruby保留了所有gem)。

问题是,当我尝试的时候,我得到了:

代码语言:javascript
复制
     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是否与我的操作系统不兼容(我运行的是opensuse linux)

编辑:当我尝试在我的常规ruby环境中重新安装sqlite3-ruby (卸载而不是重新安装)时,我得到了同样的错误,但随后在gem列表中看到了sqlite3-ruby (不确定它是从备份中恢复,还是在出现错误的情况下安装)

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-12-15 22:38:48

你可以试一试

代码语言:javascript
复制
gem install sqlite3-ruby -- --with-sqlite3-dir=/path/to/your/sqlite3

如果这不起作用,你可以尝试update your sqlite3,3.6.4是相当旧的,我认为新版本的Ruby sqlite在旧的东西上有问题。

(对于这两个版本,您得到不同答案的最可能原因是,在版本2和版本3之间发生了重大变化--我相信主要是处理Unicode --而且一些程序仍然使用2,而不是3。)

票数 4
EN

Stack Overflow用户

发布于 2011-01-20 09:13:56

我会投票支持或评论布伦南的答案,但我还没有足够的分数来这么做。我想我应该留下这个答案,以防对其他人有帮助:我已经在这个问题上花了一段时间了……我已经安装了Ruby 1.9.1和Rails 3.0.3,并且可以正常工作,但我决定迁移到RVM。按照说明安装了RVM,然后重新安装了rails,所有gravy...then都尝试捆绑安装,并在sqlite3中遇到以下错误:

代码语言:javascript
复制
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=路径,但不起作用。然后,为了好玩,我试着:

代码语言:javascript
复制
gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib

出于更多的原因,这是可行的。所以,以防万一有人

票数 6
EN

Stack Overflow用户

发布于 2010-12-31 01:41:07

当我从源代码安装sqlite3时,它将包含文件放在/usr/local/include中

我试过了

代码语言:javascript
复制
gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib

它终于安装好了。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4450823

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档