2012-04-11 22 views
6

Ich versuche, mysql2 auf dem Server zu installieren. so meine erste Pech Spur war wie folgtFehler bei der Installation von mysql2

gem install mysql2 

der Ausgang

Building native extensions. This could take a while... 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

/usr/bin/ruby1.8 extconf.rb 
checking for rb_thread_blocking_region()... no 
checking for rb_wait_for_single_fd()... no 
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... yes 
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 
    --without-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=/usr/bin/ruby1.8 
    --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 /home/aaalsubaie/.gems/gems/mysql2-0.3.11 for inspection. 
Results logged to /home/aaalsubaie/.gems/gems/mysql2-0.3.11/ext/mysql2/gem_make.out 

dies ist nicht das Ende der Geschichte

nach dem Laufen

[ps89405]$ mysql --help | grep Default -A 1 
Default options are read from the following files in the given order: 
/etc/my.cnf /etc/mysql/my.cnf /usr/etc/my.cnf ~/.my.cnf 

Ich versuchte

gem install mysql2 -- --with-mysql-config=~/.my.cnf --ruby=/usr/bin/ruby1.8 

und

gem install mysql2 -- --with-mysql-config=/usr/etc/my.cnf --ruby=/usr/bin/ruby1.8 

und

gem install mysql2 -- --with-mysql-config=/etc/my.cnf --ruby=/usr/bin/ruby1.8 

kein Glück die gleichen Fehler.

Ich nicht rvm lief

und mein Juwel env ist

RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.7 
    - RUBY VERSION: 1.8.7 (2010-08-16 patchlevel 302) [x86_64-linux] 
    - INSTALLATION DIRECTORY: /home/aaalsubaie/.gems/ 
    - RUBY EXECUTABLE: /usr/bin/ruby1.8 
    - EXECUTABLE DIRECTORY: /home/aaalsubaie/.gems/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - x86_64-linux 
    - GEM PATHS: 
    - /home/aaalsubaie/.gems/ 
    - /usr/lib/ruby/gems/1.8 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

dies mein zweiter Tag auf Zeile versucht, meine erste Rails-Anwendung ohne Glück mich zu entfalten, obwohl es viel einfacher sein wird.

Update:

nun der Befehl funktioniert und die Installation von mysql2 Juwel dank Yanhao

gem install mysql2 -- --with-mysql-config=/usr/bin/mysql_config 

Ich habe jetzt neue Ausgabe mit mysql2 gem wenn ich

bundle exec rails console 

betreibe ich bekam

/home/aaalsubaie/ajhezaty.com/releases/20120411095320/vendor/bundle/ruby/1.8/gems/mysql2-0.3.11/lib/mysql2.rb:9:in `require': no such file to load -- mysql2/mysql2 (LoadError) 
from /home/aaalsubaie/ajhezaty.com/releases/20120411095320/vendor/bundle/ruby/1.8/gems/mysql2-0.3.11/lib/mysql2.rb:9 
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require' 
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:64:in `require' 
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `each' 
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:62:in `require' 
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `each' 
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler/runtime.rb:51:in `require' 
from /usr/lib/ruby/gems/1.8/gems/bundler-1.0.7/lib/bundler.rb:112:in `require' 
from /home/aaalsubaie/ajhezaty.com/releases/20120411095320/config/application.rb:7 
from /home/aaalsubaie/ajhezaty.com/releases/20120411095320/vendor/bundle/ruby/1.8/gems/railties-3.2.1/lib/rails/commands.rb:39:in `require' 
from /home/aaalsubaie/ajhezaty.com/releases/20120411095320/vendor/bundle/ruby/1.8/gems/railties-3.2.1/lib/rails/commands.rb:39 
from script/rails:6:in `require' 
from script/rails:6 

Antwort

3

Der Befehl soll dies mag:

gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 

Option "with-mysql-config" bezieht sich auf das "mysql_config" Werkzeug anstelle der Konfigurationsdatei.

Und Sie würden besser die Datei mkmf.log.

+1

/usr/local/mysql/bin/existiert nicht in meinem Server! Auch habe ich Ihre letzte Zeile nicht verstanden. – aaalsubaie

+0

Danke, dass es nach der Installation der Dev-Bibliothek funktioniert. Ich habe jetzt ein neues Problem. Kannst du mein Update zu der obigen Frage lesen? – aaalsubaie

+0

Noch ein 'Bündel installieren'? – Reactormonk

14

Sie Dies kann nicht direkt relevant sein, aber stand ich genau das gleiche Problem, und ich denke, meine Antwort andere mit diesem Problem helfen können:

sudo apt-get install libmysql-ruby 
sudo apt-get install libmysqlclient-dev 
sudo gem install mysql2 

die für mich gearbeitet.

+0

Danke, Zeit gespart) – ajahongir

+0

Danke, Sie sparen meine Zeit :) –

+0

+1. Danke das hat geholfen ... –

4

Wenn Sie auf einem Mac sind, installieren Sie MySQL mit Homebrew brew install mysql und Sie sollten den Edelstein danach installieren können.

0

Zuerst müssen Sie diesen Befehl ausführen werden:

sudo apt-get install libmysqlclient-dev 

und dann können Sie dies ausführen:

gem install mysql2 

sollte es Arbeit ..

0

sudo sein apt-get install libmysqlclient-dev das System wird zwei weitere lib: mysql-commoninstallieren 10 libmysqlclient16

0

"bündel exec rails konsole" läuft gegen die gemfile des bündlers, aber du hast mysql2 mit rubygems installiert. Sie werden laufen müssen:

gem uninstall mysql2    # uninstall mysql2 from system 
bundle exec gem uninstall mysql2 # uninstall mysql2 from bundler 
bundle config build.mysql2 --with-mysql-config=/usr/bin/mysql_config # set build option for mysql2 gem 
bundle install     # reinstall mysql2 
bundle exec rails console   # start rails console using the rails exec installed via bundler 

Zusätzliche Anmerkung: Wenn Sie Passagier verwenden und einfach aktualisiert Ihre Ruby-Version, stellen Sie sicher, Passagier neu zu installieren und aktualisieren Sie Ihre httpd.conf, um erfolgreich den Server zu starten.