2010-12-15 2 views
6

나는 rvm을 시험해보고 있으며, 루비 1.9.2와 레일 3을 설치했다. sqlite3-ruby gem을 다시 설치해야합니다 (rvm이 모든 버전의 루비에 대해 모든 보석을 분리 보관하므로).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)이 보석을 (rvm 시스템 설정을 사용하여) 다시 설치할 때 루비 1.8.7 환경에 설치되지 않습니다.

rvm이 보석을 깨뜨렸습니까? 새 보석은 내 OS와 호환되지 않습니다. (오픈소 리눅스를 실행 중입니다.)

편집 : 일반적인 루비 환경에서 sqlite3-ruby를 다시 설치하려고하면 같은 오류가 발생합니다. 하지만, 다음, 문제가 해결되지 않을 경우

+0

어떤 sqlite 버전을 컴퓨터에 설치 했습니까? – bhamby

+1

"sqlite3 -version"을 입력하면 "3.6.4"가됩니다. – Jenny

+0

"sqlite -version"을 입력하면 "2.8.17"이됩니다 ... – Jenny

답변

4

당신은

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

을 시도하고 있었다 (오류에도 불구하고 어떻게 든 백업에서 복원하거나 설치하는 것 있는지 확실하지 않습니다)를 내 보석 목록에 sqlite3를 루비 참조 당신은 update your sqlite3을 시도해 볼 수도 있습니다. 3.6.4는 다소 오래되었습니다. Ruby sqlite의 최신 버전에는 그와 관련된 문제가 있다고 생각합니다.

(그리고 두 버전과 다른 대답을 얻는 가장 큰 이유는 버전 2와 3 사이의 차이는 대대적으로 유니 코드를 다루는 것이라 생각합니다. 일부 프로그램은 여전히 ​​2를 사용합니다. 3) 나는 소스에서 sqlite3를 설치

+0

gem을 설치하면 경로가 새롭고 흥미 진진합니다 그래서 sqlite3을 업데이트하려고했습니다.yast (opensuse의 패키지 관리자)를 통해 이렇게하는 것은 흉상이었고, "업데이트를 제공 할 수 없다"고 주장한다. 다운로드 링크를 사용해 보겠습니다. – Jenny

3

가// usr/지방에 포함 된 파일을 배치는

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

을 시도하고 마침내 설치되어 있습니다.

0

우분투 9.04에 나는 또한 투표를하거나 브레넌의 대답에 대해 언급 것 SQLite는 다운로드 및 소스

6

에서 설치했다하지만 난 할 아직 충분한 포인트가 없습니다. 다른 사람들에게 도움이 될 경우를 대비하여이 대답을 남겨 둘 것이라고 생각했습니다.이 글을 잠시 보냈습니다 ... Ruby 1.9.1 및 Rails 3.0.3을 설치하고 작동 시켰지만 RVM으로 이동하기로 결정했습니다. 다시 방향 후 설치 레일, 모든 육즙에 따라 RVM을 설치 ... 다음 설치 번들 시도하고 sqlite3를 함께이 오류로 실행 : 내가 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. 

원래의 dir을 찾으러 갔다. which was usr/local/sqlite3

나는 이것을 --with-sqlite3-dir= 경로로 사용해 보았지만 작동하지 않았다. 그럼 그냥 재미를 위해 시도 :

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

그리고 wahtever 이유로, 그게 효과. 따라서 누군가를위한

관련 문제