2010-12-15 3 views
6

Я пробовал rvm и установил ruby ​​1.9.2 и рельсы 3 с ним. Мне нужно переустановить камень sqlite3-ruby (поскольку rvm хранит все драгоценные камни отдельно для разных версий ruby).Rails 3 не установит драгоценный камень sqlite3-ruby с rvm?

Проблема заключается в том, когда я пытаюсь, я получаю:

 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 enviornment, EITHER.

Неужели rvm сломал драгоценный камень? Является ли новый gem просто несовместимым с моей ОС (я запускаю opensuse linux)

Редактировать: Когда я пытаюсь повторно установить (удалять, чем устанавливать снова) sqlite3-ruby в моей обычной среде ruby, я получаю ту же ошибку , но затем увидеть sqlite3-рубиновый, перечисленных в моем списке драгоценных камней (не уверен, если это каким-то образом восстановить из резервной копии, или установки, несмотря на ошибку)

+0

Какую версию sqlite вы установили на свой компьютер? – bhamby 2010-12-15 14:19:15

+1

Когда я печатаю «sqlite3 -version», я получаю «3.6.4» – Jenny 2010-12-15 14:23:40

ответ

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.)

3

Когда я установил sqlite3 от источника он поместил файлы включают в/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:

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 

и по причине wahtever, что сработало. Итак, на всякий случай кто-то

Смежные вопросы