2016-09-21 19 views
34

Konfiguruję środowisko programistyczne w nowym systemie macOS Sierra .Nie można zainstalować klejnotu mysql2 w systemie MacOS Sierra

Przede wszystkim, zainstalowałem Rbenv, Ruby (2.3.1), Homebrew a więc najnowsza wersja MySQL (5.7.15).

$ brew install mysql 
$ mysql.server start 

OK, zainicjowano MySQL. Czas, aby zainstalować mysql2 gem ...

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

Ale to nie działa.


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

Zastanawiam się, czy to odpowiada na twoje pytanie: https://stackoverflow.com/questions/30834421/error-when-trying-to-install-app-with-mysql2-gem – spickermann

+0

Dzięki, @spickermann. Ale to mi nie pomaga, te same wyniki po 'brew install openssl'. –

+2

Czy próbowałeś też 'napar ponownie zainstalować openssl & & brew link openssl --force' – spickermann

Odpowiedz

30

Po zainstalowaniu OpenSSL poprzez parzenie, powinien pojawić się następujący komunikat:

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

Można ustawić je budować flagi (do stosowania miejscowego) wykonując następujące czynności:

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

To zadziałało dla mnie.

Aby uzyskać więcej informacji, patrz bundler's documentation.

+0

To zadziałało dla mnie. To rzuciło mi ostrzeżenie "nie budować". Próbowałem zainstalować pakiet w następnej linii, to działało dla mnie. Dzięki. –

+0

Tak działa, dzięki za uratowanie mnie od bicia mojej głowy przez wiele godzin więcej – dft

96

Po prostu miałem ten sam problem, wypróbowałem wszystkie wymienione powyżej rozwiązania, a następnie zacząłem uderzać głową o klawiaturę przez kilka godzin.

Pomyślałem wtedy spróbować zainstalować/przeinstalować Narzędzi Xcode Wiersz poleceń:

xcode-select --install 

Raz zrobiłem, że klejnot mysql2 zainstalowany w/żadnych problemów. Mam nadzieję, że to wystarczy!

+1

również rozwiązany problem z instalacją nokogiri –

+1

Napotkałem ten sam problem po aktualizacji do MacOS Sierra 10.12.1 Dzięki! –

+0

perfect ...... + 1 – abhijit

-2

Po pierwsze, powinieneś spróbować 2 odpowiedzi w here Jeśli zainstalowałeś openssl, ale nadal nie działa. Powinieneś spróbować odświeżyć referencje klejnotów. Otrzymałem ten sam problem i zadziałało to dla mnie.

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

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

7

Jestem tutaj, aby podzielić się moją poprawkę, ponieważ inne odpowiedzi nie działa.

Do mojego środowiska potrzebuję MySQL 5.6, więc musiałem użyć:

brew install mysql56 zamiast brew install mysql

Bundle instalowania gem mysql2 przechowywane braku, dopóki:

brew link mysql56

Ja również prowadził potem:

mysql.server start

Ostatni krok może być niepotrzebny, ale po prostu w przypadku.

+0

To samo działało z Perconą, chociaż musiałem to wymusić: 'brew link --force percona-server56' –

1

Spróbuj zainstalować Xcode-wybierz --install

1

Więc wpadłem na tym podobnego problemu i dla mnie okazało się być niewłaściwą wersję Ruby i niezgodną wersję MySQL. Używam Ruby 2.3 w większości moich projektów, ale odziedziczyłem projekt 2.1. Przejście na rvm, aby użyć 2.1, dało mi trochę więcej.

Potem znalazłem to: https://github.com/brianmario/mysql2/issues/603 który powiedział, że musiał użyć mysql2 wersja gem większa niż 0.3.17 z wersji MySQL 5.7

Aktualizacja gem do 0.3.17 i wystrzelił prosto. Mam nadzieję, że to pomaga komuś.

1

Prawie ten sam scenariusz, co @Caio Tarifa, Ruby 2.3.3, mysql 5.6 i mysql2. Wypróbowałem kilka rozwiązań powyżej i ostatecznie sprawiłem, że działał z podejściem @ kylekeesling.

pierwsze, próbował on roztwór 1 przez @spickermann:

brew reinstall openssl && brew link openssl --force 

Nic się nie stało, pokazano ten sam błąd.

drugie, próbował on roztwór przez @Alessandro Berardi:

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

ten dostaje różne, ale więcej błędów, ponieważ nadpisanie config GEM przedłużenie tak, wszystko instalacja rozszerzeń gem się niepowodzeniem.

Wreszcie, próbował na rozwiązanie @kylekeesling:

xcode-select --install 

mysql gem to naprawić problem, jak nikogiri. Ponieważ mam już Xcode, w moim przypadku jest to ponowne zainstalowanie Xcode Command Line Tools.

+0

Uruchomiłem także polecenie ** xcode-select --install ** i to zadziałało. –

Powiązane problemy