Sqlite3 вызывает проблемы при установке пакета и установке gem

Используя Rails, всякий раз, когда я пытаюсь сделать что-нибудь вроде "bundle install" или sudo gem install someGem, я получаю те же ошибки о sqlite3. Я пробовал оба

sudo port install sqlite3 +universal

а также

sudo port install rb-sqlite3 +universal

Но ни то, ни другое не помогло. Вот ошибка:

cmu-435163:photoGlass dpieri$ sudo gem install taps 
Password: 
Building native extensions.  
This could take a while... 
ERROR:  Error installing taps:  
    ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/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.

Provided configuration options:     
--with-opt-dir  
--without-opt-dir   
--with-opt-include  
--without-opt-include=${opt-dir}/include    
--with-opt-lib 
....

....
Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.3 for inspection. Results logged to /Library/Ruby/Gems/1.8/gems/sqlite3-1.3.3/ext/sqlite3/gem_make.out

ОБНОВЛЕНИЕ: я нашел файл mkmf.log, и вот его содержимое:

find_header: checking for sqlite3.h...
-------------------- yes

"gcc -E -I.
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0
-I. -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common    conftest.c -o conftest.i" checked program was: /* begin */ 1: #include <sqlite3.h> /* end */

--------------------

find_library: checking for sqlite3_libversion_number() in
-lsqlite3... -------------------- no

"gcc -o conftest -I.
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0
-I. -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common   conftest.c  -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib
-L/usr/local/lib -L/opt/local/lib -L/sw/local/lib -L/usr/lib -L.       -lruby -lsqlite3  -lpthread -ldl  " conftest.c: In function ‘t’: conftest.c:3: error: ‘sqlite3_libversion_number’ undeclared (first use in this function) conftest.c:3: error: (Each undeclared identifier is reported only once conftest.c:3: error: for each function it appears in.) checked program was: /* begin */ 1: /*top*/ 2: int main() { return 0; } 3: int t() { void ((*volatile p)()); p = (void ((*)()))sqlite3_libversion_number; return 0; } /* end */

"gcc -o conftest -I.
-I/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/universal-darwin10.0
-I. -I/usr/local/include -I/opt/local/include -I/sw/local/include -I/usr/include  -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE    -g -Os -pipe -fno-common -DENABLE_DTRACE  -fno-common  -pipe -fno-common   conftest.c  -L. -L/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib
-L/usr/local/lib -L/opt/local/lib -L/sw/local/lib -L/usr/lib -L.       -lruby -lsqlite3  -lpthread -ldl  " ld: warning: directory '/sw/local/lib' following -L not found ld: warning: in /usr/local/lib/libsqlite3.dylib, missing required architecture x86_64 in file Undefined symbols:   "_sqlite3_libversion_number", referenced from:
      _t in ccSWkK1V.o ld: symbol(s) not found collect2: ld returned 1 exit status checked program was: /* begin
*/ 1: /*top*/ 2: int main() { return 0; } 3: int t() { sqlite3_libversion_number(); return 0; } /* end */

--------------------

person dpieri    schedule 19.01.2011    source источник
comment
Установлены ли у вас инструменты разработчика Xcode (включая gcc)?   -  person coreyward    schedule 19.01.2011
comment
Я установил последнюю версию Xcode и инструменты разработчика около 2 месяцев назад. Я просто отлично устанавливал драгоценные камни до нескольких дней назад   -  person dpieri    schedule 19.01.2011
comment
Что дает вам which sqlite3?   -  person Dylan Markow    schedule 19.01.2011
comment
Какой sqlite3 дает мне: / opt / local / bin / sqlite3   -  person dpieri    schedule 21.01.2011


Ответы (1)


Догадаться:

  1. Сделал "which -a ruby" и "which -a sqlite3" и "which -a gem", чтобы понять, что у меня было две или три версии каждого

  2. Используйте порт для удаления всех установленных на нем версий Ruby, Sqlite3 и rubygems.

  3. Вручную удалите другой sqlite3, который не шел по тому же пути, что и Ruby и Rubygems.

  4. Как только Ruby, Rubygems и Sqlite3 находились в одной и той же ванне (usr / bin), все снова работало нормально.

person dpieri    schedule 21.01.2011
comment
Как вы вручную удалили sqlite3. Это не позволяет мне этого делать? - person azamsharp; 02.06.2011