2016-09-21 2 views
34

Я настраиваю среду разработки в новом macOS Sierra .Не удается установить mysql2 gem на macOS Sierra

Прежде всего, я установил Rbenv, Рубин (2.3.1), Homebrew и поэтому последняя версия MySQL (5.7.15).

$ brew install mysql 
$ mysql.server start 

Хорошо, MySQL был инициализирован. Время установки mysql2 камень ...

$ gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config 

Но это не сработало.


Building native extensions with: '--with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config' 
This could take a while... 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

    current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 
/Users/macuser/.rbenv/versions/2.3.1/bin/ruby -r ./siteconf20160921-16853-x1boio.rb extconf.rb --with-mysql-config=/usr/local/Cellar/mysql/5.7.15/bin/mysql_config 
checking for ruby/thread.h... yes 
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes 
checking for rb_thread_blocking_region()... no 
checking for rb_wait_for_single_fd()... yes 
checking for rb_hash_dup()... yes 
checking for rb_intern3()... yes 
----- 
Using mysql_config at /usr/local/Cellar/mysql/5.7.15/bin/mysql_config 
----- 
checking for mysql.h... yes 
checking for errmsg.h... yes 
checking for mysqld_error.h... yes 
----- 
Dont know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load 
----- 
----- 
Setting libpath to /usr/local/Cellar/mysql/5.7.15/lib 
----- 
creating Makefile 

To see why this extension failed to compile, please check the mkmf.log which can be found here: 

    /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.4/mkmf.log 

current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 
make "DESTDIR=" clean 

current directory: /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4/ext/mysql2 
make "DESTDIR=" 
compiling client.c 
compiling infile.c 
compiling mysql2_ext.c 
compiling result.c 
compiling statement.c 
linking shared-object mysql2/mysql2.bundle 
ld: library not found for -lssl 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [mysql2.bundle] Error 1 

make failed, exit code 2 

Gem files will remain installed in /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/mysql2-0.4.4 for inspection. 
Results logged to /Users/macuser/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/extensions/x86_64-darwin-16/2.3.0-static/mysql2-0.4.4/gem_make.out 
+0

Интересно, отвечает ли это на ваш вопрос: https://stackoverflow.com/questions/30834421/error-when-trying-to-install-app-with-mysql2-gem – spickermann

+0

Спасибо, @spickermann. Но это не помогает мне, такие же результаты после 'brew install openssl'. –

+2

Вы также попробовали 'brew reinstall openssl && brew link openssl --force' – spickermann

ответ

30

При установке OpenSSL через варку, вы должны получить следующее сообщение:

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables:

LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

Вы можете установить эти флаги сборки (для местного применения), выполнив следующие действия:

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include" 

Это сработало для меня.

Для получения дополнительной информации см. bundler's documentation.

+0

Это сработало для меня. Он бросил мне предупреждение «nil build». Я попытался установить пакет в следующей строке, это сработало для меня. Спасибо чувак. –

+0

Да, работает, спасибо, что спасли меня от ударов головой по часам больше – dft

96

У меня была такая же проблема, я попробовал все перечисленные выше решения, а затем начал биться головой о клавиатуру в течение нескольких часов.

Я тогда подумал, чтобы попытаться установить/переустановить Инструменты Xcode командной строки:

xcode-select --install 

После того, как я сделал, что mysql2 камень установлен ж/без проблем. Надеюсь, что это трюк!

+1

также решила проблему с установкой nokogiri –

+1

Я столкнулся с той же проблемой после обновления до MacOS Sierra 10.12.1 Спасибо! –

+0

perfect ...... + 1 – abhijit

-2

Во-первых, вы должны попробовать 2 ответа в here Если вы установили openssl, но он все равно не работает. Вы должны попытаться обновить ссылку на драгоценные камни. У меня такая же проблема, и это сработало для меня.

gem source -r https://rubygems.org/

gem source -a https://rubygems.org/

7

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

Для моей среды мне нужен MySQL 5.6, так что я не должен был использовать:

brew install mysql56 вместо brew install mysql

Bundle установкой mysql2 камень сохранил неудачу, пока:

brew link mysql56

Я побежал потом:

mysql.server start

Последний шаг может быть ненужным, но только в случае.

+0

Так же работал с Percona, хотя мне пришлось его заставлять: 'brew link --force percona-server56' –

1

Попробуйте установить Xcode-выбрать --install

1

Так что я столкнулся с этим аналогичный вопрос и для меня это оказалось неправильно версия рубин и несовместимую версию MySQL. Я использую ruby ​​2.3 для большинства своих проектов, но унаследовал проект 2.1. Переход на rvm для использования 2.1 заставил меня немного дальше.

Тогда я нашел это: https://github.com/brianmario/mysql2/issues/603, что сказал, что вы должны были использовать mysql2 самоцвет версию выше 0.3.17 с версии MySQL 5.7

Изменено камень в 0.3.17 и выстрелил прямо. Надеюсь, это поможет кому-то.

1

Почти такой же сценарий, как @Caio Tarifa, Ruby 2.3.3, mysql 5.6 и mysql2. Пробовал пару решений выше и, наконец, начал работать с подходом @ kylekeesling.

Во-первых, пытались на решение 1 по @spickermann:

brew reinstall openssl && brew link openssl --force 

Ничего не произошло, показали ту же ошибку.

Во-вторых, примерил раствора @Alessandro Берарди:

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include" 

Это есть разные, но больше ошибок, так как он перезаписывает конфигурации Gem внутреннего абонента, так что все установки расширения камень не удалось.

Наконец, примерил @kylekeesling решения:

xcode-select --install 

Это исправить MySQL вопрос драгоценный камень, а также nikogiri. Поскольку у меня уже есть Xcode, в моем случае он переустанавливает инструменты командной строки Xcode.

+0

Также выполнялась команда ** xcode-select --install **, и это сработало для меня. –

Смежные вопросы