установка gem mysql2 терпит неудачу - PullRequest
27 голосов
/ 07 марта 2011

Я получил эту ошибку:

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

/usr/bin/ruby1.8 extconf.rb
checking for rb_thread_blocking_region()... no
checking for mysql.h... no
checking for mysql/mysql.h... no
-----
mysql.h is missing.  please check your installation of mysql and try again.
-----
*** 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
    --without-opt-include=${opt-dir}/include
    --with-opt-lib
    --without-opt-lib=${opt-dir}/lib
    --with-make-prog
    --without-make-prog
    --srcdir=.
    --curdir
    --ruby=/usr/bin/ruby1.8
    --with-mysql-config
    --without-mysql-config


Gem files will remain installed in /var/lib/gems/1.8/gems/mysql2-0.2.6 for inspection.
Results logged to /var/lib/gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out

Я пробовал:

  • удалите mysql2 и установите его снова
  • удалить mysql с помощью apt-get
  • installd dev-tools из mysql
  • и почти все страницы в Google

Как я могу это исправить?

Ответы [ 8 ]

92 голосов
/ 22 февраля 2012

Вам необходимо установить libmysqlclient-dev перед установкой mysql2 gem:

sudo apt-get install libmysqlclient-dev
gem install mysql2

Это должно исправить эту проблему в последних версиях Ubuntu.

9 голосов
/ 24 мая 2013

Спасибо Андре Швайгхофер, просто ему

sudo apt-get install libmysqlclient-dev
gem install mysql2

..
bundle update
bundle install

СДЕЛАНО !!!

3 голосов
/ 05 сентября 2014

Требуется установить пакет разработки mysql

yum install mysql-devel
1 голос
/ 12 ноября 2012

Существует несколько причин этой ошибки:

  1. Плохая совместимость версий между ruby ​​и rubygems
  2. Отсутствует libmysqlclient-dev
  3. гем, не находящий
  4. Mysql 32 бита в 64-битной системе

Решения

  1. Установить rvm с последней стабильной версией, Вы можете переключаться через rvm между rubyверсии

    curl -L https://get.rvm.io | bash -s stable

  2. Установить зависимость

    sudo apt-get install libmysqlclient-dev

  3. найдите mysql_config в вашей системе (найдите / -name mysql_config) и запустите

    gem install mysql -- --with-mysql-config=/path/to/mysql_config

  4. Установите 64-битную версию mysql для вашей системы
1 голос
/ 07 марта 2011

Здесь можно использовать поиск;): ruby-mysql

вот другой поток;) с той же проблемой: ruby-mysql2

и многое другое, когда вы ищете "ruby mysql2" или что-то подобное.

0 голосов
/ 01 декабря 2017

Это может быть связано с обновленным двоичным файлом mysql (в моем случае это был Mariadb-10.0.31) и установкой отсутствующей библиотеки (libmysqlclient-dev), я получил следующее сообщение, которое будет невозможно решить: 1001 *

$ sudo apt-get install libmysqlclient-dev

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libmysqlclient-dev : Depends: libmysqlclient18 (= 5.5.58-0ubuntu0.14.04.1)

Но я решил вышеупомянутую проблему, сначала установив libmariadbclient-dev как: -

 $ sudo apt-get install libmariadbclient-dev

Он также установит libmysqlclient-dev , но сначала разрешит зависимость от mariadb.

0 голосов
/ 09 декабря 2015

Я решил, что нужно проверить файл mkmf.log, который в моем случае был где-то в ./gems/ruby-2.2.3/extensions/x86_64-linux/2.2.0/mysql2-0.4.2/mkmf.log

В моем случае произошла ошибка, из-за которой не удалось найти -lgmp, поэтому в ней отсутствовала библиотека gmp, установленная через apt-get, в данном случае libgmp-dev.

0 голосов
/ 06 сентября 2013

В Ubuntu 10.10 мне пришлось установить libmysqlclient16-dev.

...