Rails 3 не установит sqlite3-ruby gem с rvm - PullRequest
6 голосов
/ 15 декабря 2010

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

Проблема в том, что при попытке получить:

     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). Когда я пытаюсь переустановить этот драгоценный камень (используя системные настройки rvm), он не не устанавливайте в среде ruby ​​1.8.7, ИЛИ.

Рвм разбил камень? Новый gem просто не совместим с моей ОС (я использую opensuse linux)

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

Ответы [ 4 ]

6 голосов
/ 20 января 2011

Я бы проголосовал или прокомментировал ответ Бреннана, но у меня еще недостаточно очков, чтобы сделать это. Я решил оставить этот ответ на тот случай, если он кому-нибудь поможет: я потратил некоторое время на этот ... У меня были установлены и работают 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

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

4 голосов
/ 15 декабря 2010

Вы можете попробовать

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

И если это не сработает, вы можете попробовать обновить свой sqlite3 , 3.6.4 довольно старый, и я думаю, что новые версииRuby sqlite имеют проблемы с чем-то столь старымЯ верю - и некоторые программы все еще используют 2, а не 3.)

3 голосов
/ 30 декабря 2010

Когда я установил sqlite3 из исходного кода, он поместил включаемые файлы в / usr / local / include

Я попытался

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

, и он наконец установился.

0 голосов
/ 06 января 2011

на Ubuntu 9.04 Мне также пришлось скачать sqlite и установить из источника

...