2015-03-07 10 views
9

Próbuję użyć klejnotu mysql 2 z Railsami, więc dodałem gem 'mysql2'. Nie jestem w stanie zainstalować go przy użyciu bundle install i daje mi ten błąd.Nie można użyć klejnotu mysql2 z Railsami 4.1.5 w RubyMine

Gem::Ext::BuildError: ERROR: Failed to build gem native extension. 

    /Users/Ben/.rvm/rubies/ruby-2.2.0/bin/ruby -r ./siteconf20150307-17143-1jx7cob.rb extconf.rb 
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 
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/Ben/.rvm/rubies/ruby-2.2.0/bin/$(RUBY_BASE_NAME) 
     --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-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 

extconf failed, exit code 1 

Gem files will remain installed in /Users/Ben/.rvm/gems/ruby-2.2.0/gems/mysql2-0.3.18 for inspection. 
Results logged to /Users/Ben/.rvm/gems/ruby-2.2.0/extensions/x86_64-darwin-14/2.2.0/mysql2-0.3.18/gem_make.out 
An error occurred while installing mysql2 (0.3.18), and Bundler cannot continue. 
Make sure that `gem install mysql2 -v '0.3.18'` succeeds before bundling. 

Nie mam pojęcia, jak sprawić, aby działała, więc każda pomoc będzie doceniona.

Oto niektóre informacje na moim komputerze. ruby -v =>ruby 2.2.0p0 (2014-12-25 revision 49005) [x86_64-darwin14]

gem 'rails', '4.1.5' (szyny -v nie będzie działać)

bundler -v =>Bundler version 1.8.4

OS: Mac Yosemite

+0

jak został zainstalowany 'ruby', poprzez' rvm' – Sontya

+0

tak. Próbowałem to przed opublikowaniem pytania i nadal nie działa. –

+0

uruchomiono: '\ curl -sSL https://get.rvm.io | bash -s stable --ruby' –

Odpowiedz

1

zorientowali się mój problem, byłem w RubyMine z uruchomioną wersją rails server, ale z jakiegoś powodu RM używało n stara wersja ruby. Zmiana projektów SDK działała idealnie!

+0

Dobrze o tym wiedzieć. :) –

21

Dla Mac użytkowników:

brew install mysql 
gem install mysql2 

Dla Ubuntu użytkowników:

sudo apt-get install mysql-server mysql-client libmysqlclient-dev 
sudo gem install mysql2 

Instalowanie libmysqlclient-dev daje niezbędne pliki do kompilacji mysql2 klejnot, który jest co Szyny będą używać do łączenia się z MySQL podczas konfigurowania Aplikacja Rails.


Wreszcie uruchomić bundle install

+0

OP mówi, że jest na OS X Yosemite w pytaniu. – Jon

+0

Jestem na Macu. Przeczytaj pytanie. –

+1

Zaktualizowałem moją odpowiedź. –

5

próby zainstalowania 'libmysqlclient-dev' pierwszy

sudo apt-get install libmysqlclient-dev 

i po biegu

bundle install 
1

Upewnij się, że zainstalowałeś klejnoty za pomocą bundler.

Run

bundle install 

lub po prostu

gem install mysql2 

Następnie umieścić go w pliku database.yml

+0

Już to zrobiłem. Znalazłem rozwiązanie, ale dzięki. –

+0

jakie było rozwiązanie. Utknąłem na tym, próbowałem odinstalować klejnot mysql2, ponownie zainstalować, ciągle otrzymuję errormkmf.rb: 381: in 'try_do ': Kompilator nie zdołał wygenerować pliku wykonywalnego. (RuntimeError) Najpierw musisz zainstalować narzędzia programistyczne. – bjm88

1

Not an konkretnej odpowiedzi OS, ale może pomóc innym:

Nowsze Adaptery MySQL2 (v0.4.x) nie są kompatybilne z Rails 4.1.5. Określanie starszego klejnotu mysql2 (np. V0.3.x) rozwiązuje problem:

gem 'mysql2', '~> 0.3.21' 

Źródło: https://github.com/brianmario/mysql2/issues/675

Powiązane problemy