2012-04-07 12 views
47

Próbuję zainstalować gem mysql2 z szynami 3.2.3 i to braku:BŁĄD: Nie można budować gem natywną rozszerzenie (mysql2 na szynach 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. 

biegnę zainstalować pakiet i to jest w moim Gemfile:

gem 'mysql2', '~> 0.3.11' 

mam obecnie MySQL został uruchomiony przez MAMP. Nie jestem pewien, czy jest to zły pomysł i powinienem uruchomić wanilię MySQl, ale wydaje mi się, że moim obecnym problemem jest właśnie zainstalowanie klejnotu. Widziałem sporo z tych problemów na stackoverflow, ale wszystkie wydają się nieco inne lub mają naprawdę skomplikowane rozwiązania. Czy jest coś, czego mi brakuje? Coś prostego? Coś głupiego? W razie potrzeby mogę dostarczyć dodatkowe informacje z pliku wyjściowego. Czytałem, że niektórzy ludzie używają SQLite do dev i testują wtedy MySQL w prod, ale brzmi to jak okropny pomysł.

+0

Mam polecenie mysql_config dostępne, nie wiedząc o bibliotekach MySQL i nagłówków. Dodałem MAMP/Library/bin do mojego .profile i to wydawało się pomóc. Teraz to się nie udaje, ponieważ nie może znaleźć mysql.h, które zakładam, są częścią bibliotek/nagłówków? –

Odpowiedz

1

skończyło się tylko zainstalowanie nowej kopii MySQL i nie używając MAMP-a, i to wystarczyło. Musiał także koniecznie zainstalować wersję 64-bitową, a nie 32-bitową.

17

to głównie ze względu na brak nagłówków MySQL Spróbuj zainstalować mysql developer (mysql-devel) Pakiety

Zazwyczaj błąd ten pojawia się, gdy 'libmysqlclient-dev' pakietu brakuje

+0

To zadziałało! Dzięki! :) –

+1

Linki są martwe. – Cyclonecode

0

Możesz śledzić ten wątek Errors Installing mysql2 gem via the Bundler, który wyjaśnia rozwiązanie dla Centos i ten problem zostanie naprawiony, jeśli dostroisz polecenia w.r.t swojego systemu operacyjnego i będziesz mógł pomyślnie zainstalować klejnot mysql2.

40

użyłem Homebrew for Mac zainstalować mysql:

brew install mysql 

Następnie użyłem komendy gem zainstalować gem mysql2:

sudo gem install mysql2 
+0

zrobił to i naprawił mój komunikat o błędzie, który otrzymywałem. –

2

po prostu wpadł na ten sam problem, przy użyciu OS X Sierra i MAMP i Rails 5. Pomyślnie zainstalowałem gem poprzez

Po tym, instalacja pakietu działała dobrze.

0

Kiedy mam ten błąd, udało mi się rozwiązać ten problem przez wykonanie:

gem install devtools 
Powiązane problemy