2016-01-14 3 views
0

Я пытаюсь установить 5-летний веб-сайт на местном уровне, который является веб-сайтом 1.9.2 Ruby. Для этого мне нужен файл mysql2 gem, но я постоянно терпеть неудачу с ошибкой mesasge belove.Ruby and Mysql2

Installing mysql2 0.3.20 with native extensions 

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    /home/li/.rvm/rubies/ruby-1.9.2-p330/bin/ruby -r ./siteconf20160114-7831-msi06n.rb extconf.rb 
checking for ruby/thread.h... yes 
checking for rb_thread_call_without_gvl() in ruby/thread.h... no 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... no 
checking for rb_hash_dup()... yes 
checking for rb_intern3()... yes 
----- 
Using mysql_config at /usr/bin/mysql_config 
----- 
checking for mysql.h... yes 
checking for errmsg.h... yes 
checking for mysqld_error.h... yes 
----- 
Setting libpath to /usr/lib64/mysql 
----- 
creating Makefile 

make clean 

make 
gcc -I. -I/home/li/.rvm/rubies/ruby-1.9.2-p330/include/ruby-1.9.1/x86_64-linux -I/home/li/.rvm/rubies/ruby-1.9.2-p330/include/ruby-1.9.1/ruby/backward -I/home/li/.rvm/rubies/ruby-1.9.2-p330/include/ruby-1.9.1 -I. -I/usr/include/mysql -DHAVE_RUBY_THREAD_H -DHAVE_RB_THREAD_BLOCKING_REGION -DHAVE_RB_HASH_DUP -DHAVE_RB_INTERN3 -DHAVE_MYSQL_H -DHAVE_ERRMSG_H -DHAVE_MYSQLD_ERROR_H -fPIC -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wno-long-long -fPIC -Wall -funroll-loops -o mysql2_ext.o -c mysql2_ext.c 
In file included from ./mysql2_ext.h:32:0, 
       from mysql2_ext.c:1: 
/usr/include/ruby/thread.h:26:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘void’ 
void *rb_thread_call_with_gvl(void *(*func)(void *), void *data1); 
^ 
In file included from ./mysql2_ext.h:41:0, 
       from mysql2_ext.c:1: 
./client.h:39:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘typedef’ 
typedef struct { 
^ 
Makefile:180: recipe for target 'mysql2_ext.o' failed 
make: *** [mysql2_ext.o] Error 1 

make failed, exit code 2 

Gem files will remain installed in /home/li/.rvm/gems/[email protected]/gems/mysql2-0.3.20 for inspection. 
Results logged to /home/li/.rvm/gems/[email protected]/extensions/x86_64-linux/1.9.1/mysql2-0.3.20/gem_make.out 

Не могли бы вы немного помочь мне?

+0

Возможно, это [ссылка] (https://github.com/brianmario/mysql2/issues/572) поможет. – Mareq

+0

Заглядывая в него, извините за медленный ответ, в последнее время появилось много нового и нужно сделать список приоритетов. Вы знаете, как это происходит ... – Bert

ответ

0

Спасибо! Что касается решения этих ссылок, я удалил ruby ​​и обнаружил, что установлено несколько версий. После удаления все работало нормально.

0

У меня также была эта проблема, но я не мог удалить рубин системы, поскольку он использовался вне RVM.

Однако выясняется, что все, что вам нужно удалить для этого, это пакет ruby-devel. Похоже, что по какой-то причине при попытке скомпилировать собственные расширения mysql внутри RVM некоторые из включенных файлов берутся из каталога include системы, а не из каталога включения RVM, что приводит к конфликту между рубиновыми версиями.

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