2010-01-24 1 views
2

У меня есть JRuby MySQL gem, установленный на моей машине. Однако по какой-то причине мне пришлось переходить на Ruby вместо JRuby, и все, кажется, прекрасно работает, за исключением того, что MySQL-камень для Ruby не установлен, и теперь, когда я пытаюсь его установить, я получаю следующую ошибку:Установите MySQL gem для Ruby вместе с JRuby gem

Building native extensions. This could take a while... 
ERROR: Error installing mysql: 
    ERROR: Failed to build gem native extension. 

/usr/bin/ruby1.8 extconf.rb --with-mysql-dir=/usr/include/mysql 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lm... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lz... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lsocket... no 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lnsl... yes 
checking for mysql_query() in -lmysqlclient... no 
checking for main() in -lmygcc... no 
checking for mysql_query() in -lmysqlclient... no 
*** 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 

Я googled и обнаружил, что мне может понадобиться установить пакет libmysqlclient12-dev.

Но когда я попытался сделать это, я получил следующее сообщение об ошибке:

Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
Package libmysqlclient12-dev is not available, but is referred to by another package. 
This may mean that the package is missing, has been obsoleted, or 
is only available from another source 
E: Package libmysqlclient12-dev has no installation candidate 

Теперь я, кажется, попав в стену и не двигаться вперед с этим. Любые указатели или помощь будут оценены.

Cheers

ответ

1

У меня была та же проблема. Я сделал

apt-get install libmysqlclient-dev 

на Ubuntu, и это сработало.

1

0 Какой автомобиль вы используете? Рубиновый или хрубный?

Попробуйте which gem если вы на * unix.

Посмотрите на свой путь, чтобы убедиться, что бинарные файлы C-ruby находятся перед двоичными файлами JRuby (или удалите JRuby с вашего пути, если вы больше не собираетесь его использовать).

1

Я угадываю из диспетчера пакетов, что вы используете Linux.

libmysqlclient12-dev - это пакет Ubuntu. Если вы используете какой-то другой дистрибутив, это, скорее всего, просто называется чем-то другим. Я считаю, что пакет Fedora, который вам нужен, - mysql-devel. Если вы выполните поиск по имени вашего дистрибутива и libmysqlclient12-dev, вы, вероятно, сможете найти именно то, что есть.

В вашем дистрибутиве могут быть также встроенные версии некоторых драгоценных камней. Fedora (это то, что я использую) не имеет встроенной памяти mysql, но может быть и другое. В Fedora они называются rubygem-GEMNAME в зависимости от драгоценного камня. Например, предварительно построенный драгоценный камень sqlite - rubygem-sqlite3-ruby.