Установите гем MySQL для Ruby вместе с гемом JRuby - PullRequest
2 голосов
/ 24 января 2010

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

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

Я гуглил и обнаружил, что мне может понадобиться установить пакет 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

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

Приветствия

Ответы [ 3 ]

1 голос
/ 28 января 2010

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

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

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

1 голос
/ 10 февраля 2012

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

apt-get install libmysqlclient-dev

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

1 голос
/ 28 января 2010

Какую команду gem вы используете? Рубиновый или Джрубиновый?

Попробуйте which gem, если вы используете * Unix.

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

...