2010-12-15 34 views
6

我尝试了rvm,并安装了ruby 1.9.2和rails 3。我需要重新安装sqlite3-ruby gem(因为rvm会为不同版本的ruby保留所有的宝石)。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)当我尝试重新安装这个gem(使用rvm系统设置)时,它不会安装在ruby 1.8.7环境中,无论如何。

rvm打破了宝石?是新的创业板只与我的操作系统不兼容(我正在运行opensuse linux)

编辑:当我尝试在我的常规ruby环境中重新安装(卸载而不是再次安装)sqlite3-ruby,我得到相同的错误,但后来看到我的宝石列表中列出的sqlite3 - 红宝石(不知道这是否是某种方式从备份中恢复,或安装尽管错误)

+0

你已经在你的电脑上安装了什么版本的sqlite? – bhamby 2010-12-15 14:19:15

+1

当我输入“sqlite3 -version”我得到“3.6.4” – Jenny 2010-12-15 14:23:40

+0

但是,当我输入“sqlite -version”,我得到“2.8.17”...困惑 – Jenny 2010-12-15 14:25:48

回答

4

你可以尝试

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

如果不工作,你可能会尝试到update your sqlite3,3.6.4是比较老的,我认为新版本的Ruby sqlite会遇到一些旧的问题。

(而这两者之间的不同答案的最可能原因是版本2和版本3之间是一个重大变化 - 我主要涉及Unicode,我相信 - 还有一些程序仍然使用2,而不是3.)

+0

做这个gem安装路径让我新的和令人兴奋的错误,所以我转而试图更新我的sqlite3。通过yast(opensuse的软件包管理器)这样做是一次破产,它宣称更新“不能提供”。猜猜我会尝试你的下载链接... – Jenny 2010-12-15 14:52:23

3

当我从源安装的sqlite3它放置在/ usr /本地/包含文件包括

我试图

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

它终于安装。

0

在Ubuntu 9.04我也只好下载源码和源

6

安装我投票了或布伦南的回答发表评论,但我没有足够的积分来做到这一点呢。我想我会留下这个答案,以防止其他人:我已经花了一段时间在这一个......我安装了Ruby 1.9.1和Rails 3.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 /本地/ sqlite3

我试过使用它作为--with-sqlite3-dir=路径,但没有奏效。然后只是为了好玩,我试过了:

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

和wahtever原因,工作。所以,以防万一某人