Ответ 1
Вам необходимо установить libmysqlclient-dev
перед установкой mysql2
gem:
sudo apt-get install libmysqlclient-dev
gem install mysql2
Это должно устранить эту проблему на последних версиях Ubuntu.
Я получил эту ошибку:
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
Я пробовал:
Как я могу это исправить?
Вам необходимо установить libmysqlclient-dev
перед установкой mysql2
gem:
sudo apt-get install libmysqlclient-dev
gem install mysql2
Это должно устранить эту проблему на последних версиях Ubuntu.
Спасибо Андрею Швайгоферу, просто к нему
sudo apt-get install libmysqlclient-dev
gem install mysql2
..
bundle update
bundle install
СОВЕРШЕНА!!!
Требуется установить пакет разработки mysql
yum install mysql-devel
Его helful, чтобы использовать поиск здесь;): ruby-mysql
вот еще один поток;) с той же проблемой: ruby-mysql2
и еще много, когда вы ищете "ruby mysql2" или что-то вроде этого.
Это несколько причин этого сбоя:
Решение
Установите rvm с последней стабильной версией, вы можете переключиться через rvm между рубиновыми версиями
curl -L https://get.rvm.io | bash -s stable
Установите параметр dependecy
sudo apt-get install libmysqlclient-dev
gem install mysql -- --with-mysql-config=/path/to/mysql_config
В Ubuntu 10.10 мне пришлось установить libmysqlclient16-dev.
То, как я решил, это проверить 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.
Это может быть связано с обновлением бинарного файла mysql (в моем случае он использовал Mariadb-10.0.31), а при установке отсутствующей библиотеки (libmysqlclient-dev) я получил следующее сообщение о том, что было бы невозможно решить:
$ 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.