ОШИБКА: Не удалось создать собственное расширение gem (mysql2 on rails 3.2.3) - программирование
Подтвердить что ты не робот

ОШИБКА: Не удалось создать собственное расширение gem (mysql2 on rails 3.2.3)

Я пытаюсь установить gem mysql2 с Rails 3.2.3, и он не работает:

★  bundle install
Fetching gem metadata from https://rubygems.org/.........
Using rake (0.9.2.2) 
Using i18n (0.6.0) 
Using multi_json (1.2.0) 
Using activesupport (3.2.3) 
Using builder (3.0.0) 
Using activemodel (3.2.3) 
Using erubis (2.7.0) 
Using journey (1.0.3) 
Using rack (1.4.1) 
Using rack-cache (1.2) 
Using rack-test (0.6.1) 
Using hike (1.2.1) 
Using tilt (1.3.3) 
Using sprockets (2.1.2) 
Using actionpack (3.2.3) 
Using mime-types (1.18) 
Using polyglot (0.3.3) 
Using treetop (1.4.10) 
Using mail (2.4.4) 
Using actionmailer (3.2.3) 
Using arel (3.0.2) 
Using tzinfo (0.3.32) 
Using activerecord (3.2.3) 
Using activeresource (3.2.3) 
Using bundler (1.1.3) 
Using coffee-script-source (1.2.0) 
Using execjs (1.3.0) 
Using coffee-script (2.2.0) 
Using rack-ssl (1.3.2) 
Using json (1.6.6) 
Using rdoc (3.12) 
Using thor (0.14.6) 
Using railties (3.2.3) 
Using coffee-rails (3.2.2) 
Using jquery-rails (2.0.2) 
Installing mysql2 (0.3.11) with native extensions 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/rarneson/.rvm/rubies/ruby-1.9.3-p125/bin/ruby extconf.rb 
checking for rb_thread_blocking_region()... yes
checking for rb_wait_for_single_fd()... yes
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... yes
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... no
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
    --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=/Users/rarneson/.rvm/rubies/ruby-1.9.3-p125/bin/ruby
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include
    --without-mysql-include=${mysql-dir}/include
    --with-mysql-lib
    --without-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /Users/rarneson/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11 for inspection.
Results logged to /Users/rarneson/.rvm/gems/ruby-1.9.3-p125/gems/mysql2-0.3.11/ext/mysql2/gem_make.out
An error occured while installing mysql2 (0.3.11), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.11'` succeeds before bundling.

Я запускаю установку пакета, и это находится в моем Gemfile:

gem 'mysql2', '~> 0.3.11' 

В настоящее время MySQL работает через MAMP. Я не уверен, что это плохая идея, и я должен запустить vanilla MySQl, но, похоже, моя текущая проблема заключается в том, чтобы просто установить камень. Я видел немало таких проблем здесь, в stackoverflow, но все они немного отличаются или имеют действительно сложные решения. Есть что-то, что мне не хватает? Что-то простое? Что-то глупое? При необходимости я могу предоставить дополнительную информацию из внешнего файла. Я читал, что некоторые люди используют SQLite для разработчиков и тестируют MySQL в prod, но это звучит как довольно ужасная идея.

4b9b3361

Ответ 1

В итоге я просто установил новую копию MySQL и не использовал MAMP, и это сделало трюк. Также необходимо было установить 64-разрядную версию, а не 32-разрядную.

Ответ 3

Я использовал Homebrew для Mac для установки mysql:

brew install mysql

Затем я использовал команду gem для установки gem mysql2:

sudo gem install mysql2

Ответ 4

В основном это связано с отсутствием заголовков mysql, попробуйте установить пакеты mysql developer (mysql-devel)

Обычно эта ошибка возникает, когда отсутствует пакет libmysqlclient-dev

Ответ 5

Я столкнулся с одной и той же проблемой, используя OS X Sierra и MAMP и Rails 5. Я успешно установил gem через

gem install mysql2 -- --with-mysql-config=/Applications/MAMP/Library/bin/mysql_config

После этого пакетная установка работала нормально.

Ответ 6

Вы можете следить за этой темой Ошибки Установка mysql2 gem через Bundler, которая объясняет решение для Centos, и эта проблема будет исправлена, если вы настроите команды по вашей ОС и вы сможете успешно установить драгоценный камень mysql2.

Ответ 7

Просто добавьте MAMP mysql в PATH, затем вы можете запустить установку пакета в соответствии с нормальным.

$/Приложения/MAMP/Library/bin/mysql --host = localhost -uroot -proot

источник: http://blog-en.mamp.info/2009/08/using-mysql-command-line-with-mamp.html