我正在试用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是否与我的操作系统不兼容(我运行的是opensuse linux)
编辑:当我尝试在我的常规ruby环境中重新安装sqlite3-ruby (卸载而不是重新安装)时,我得到了同样的错误,但随后在gem列表中看到了sqlite3-ruby (不确定它是从备份中恢复,还是在出现错误的情况下安装)
发布于 2010-12-15 22:38:48
你可以试一试
gem install sqlite3-ruby -- --with-sqlite3-dir=/path/to/your/sqlite3如果这不起作用,你可以尝试update your sqlite3,3.6.4是相当旧的,我认为新版本的Ruby sqlite在旧的东西上有问题。
(对于这两个版本,您得到不同答案的最可能原因是,在版本2和版本3之间发生了重大变化--我相信主要是处理Unicode --而且一些程序仍然使用2,而不是3。)
发布于 2011-01-20 09:13:56
我会投票支持或评论布伦南的答案,但我还没有足够的分数来这么做。我想我应该留下这个答案,以防对其他人有帮助:我已经在这个问题上花了一段时间了……我已经安装了Ruby 1.9.1和Rails 3.0.3,并且可以正常工作,但我决定迁移到RVM。按照说明安装了RVM,然后重新安装了rails,所有gravy...then都尝试捆绑安装,并在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出于更多的原因,这是可行的。所以,以防万一有人
发布于 2010-12-31 01:41:07
当我从源代码安装sqlite3时,它将包含文件放在/usr/local/include中
我试过了
gem install sqlite3-ruby -- --with-sqlite3-dir=/usr/local/lib它终于安装好了。
https://stackoverflow.com/questions/4450823
复制相似问题