Wenn ich versuche, das mysql2-Juwel zu installieren, schlägt es ohne offensichtliche Fehler fehl. Weiß jemand, was zu tun ist, um dies zu umgehen, damit mysql2 installiert wird?
$ sudo gem install mysql2
Building native extensions. This could take a while...
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
checking for rb_thread_blocking_region()... 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... 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
--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=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/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 /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/ext/mysql2/gem_make.out
brew install mysql
und danngem install mysql
ohne probleme - danke!Ubuntu:
sudo apt-get install libmysqlclient-dev #(mysql development headers) sudo gem install mysql2 -- --with-mysql-dir=/etc/mysql/
Das ist es!
Ergebnis:
Building native extensions. This could take a while... Successfully installed mysql2-0.2.6 1 gem installed Installing ri documentation for mysql2-0.2.6... Enclosing class/module 'mMysql2' for class Result not known Enclosing class/module 'mMysql2' for class Client not known Installing RDoc documentation for mysql2-0.2.6... Enclosing class/module 'mMysql2' for class Result not known Enclosing class/module 'mMysql2' for class Client not known
quelle
with-mysql-dir
. Einfach installierenlibmysqlclient-dev
und dann ausführenbundle install
und es sollte funktionieren.Sie benötigen die MySQL-Entwicklungsheader, damit mysql2 ordnungsgemäß kompiliert werden kann. Dies ist erforderlich, da ein Großteil der Funktionen in C geschrieben und anschließend mit MySQL verknüpft wird.
Eine Lösung besteht darin, das Gem-Installationsprogramm entweder explizit auf Ihren MySQL-Installationsordner zu verweisen
gem install mysql2 -- --with-mysql-dir=/usr/local/mysql # or where ever you installed your mysql server to
oder indem Sie einen MySQL-Server an einem bekannten Ort installieren (z . B. mithilfe von Homebrew ) und dann den Edelstein installieren
# install the mysql server locally brew install mysql # install the gem gem install mysql2
Bei beiden Ansätzen muss XCode installiert sein, damit der erforderliche GCC-Compiler verfügbar ist.
quelle
--with-mysql-dir=
Option war genau das, was ich brauchte, um mein Problem zu lösen.--with-mysql-dir
tatsächlich ein Problem. Ich habe das einfach weggelassen und es in einem Standardverzeichnis installieren lassen. Ich habe gerade direkt eine bestimmte Version mitgem install mysql2 -v '0.3.18'
Nachdem Brew und MySQL installiert waren, habe ich Folgendes verwendet, um das mysql2-Juwel zu installieren
gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.5.10/bin/mysql_config
Wenn Sie Bundler verwenden, können Sie Bundler mit dem folgenden Befehl darüber informieren:
bundle config build.mysql2 --with-mysql-config=/usr/local//Cellar/mysql/5.5.10/bin/mysql_config
Wie hier dokumentiert: http://gembundler.com/man/bundle-config.1.html
quelle
Unter Mac OSX Moutain Lion hat der folgende Befehl für mich funktioniert:
gem install mysql2 -- --srcdir=/usr/local/mysql/include
quelle
Ubuntu 15.04:
sudo apt-get install libmysqlclient-dev sudo gem install mysql2
Ubuntu-16.04:
sudo apt-get install ruby-mysql2 sudo gem install mysql2
Ausgabe:
Building native extensions. This could take a while... Successfully installed mysql2-0.3.19 Parsing documentation for mysql2-0.3.19 Installing ri documentation for mysql2-0.3.19 Done installing documentation for mysql2 after 0 seconds 1 gem installed
quelle
Vielleicht möchten Sie diesen Thread auf der MySQL-Website überprüfen: http://forums.mysql.com/read.php?116,178217,178217 , insbesondere die Antwort von Scott Derrick: http://forums.mysql.com/ read.php? 116,178217,189357 # msg-189357
Um genauer zu sein, versuchen Sie es mit
sudo gem install mysql2 -- --with-mysql-dir=/usr/local/mysql
Hoffentlich hilft das.
quelle
Ich habe das Internet und den Stapelüberlauf im Wert von 2 Tagen durchgearbeitet, und erst als ich diesen Link gefunden und dann angefangen habe, dieses Ticket für mysql2 durchzuarbeiten , habe ich das Problem tatsächlich behoben.
Bei meinem Setup (wie im Ticket erläutert) würden die Compiler-Schalter von -Wno-Null-Conversion -Wno-unused-Private-Field unterbrochen und mir einen Fehler geben, der nicht genau korrekt war.
mysql.h is missing. please check your installation of mysql and try again
quelle
Ich habe dieses Problem gelöst, indem ich genau angegeben habe, wo sich die Verzeichnisse befinden, ohne dass etwas neu installiert werden muss , mit Brew oder Macports oder was auch immer, indem ich nur angegeben habe, wo sich die Dinge befinden (nur eines: Der Ruby auf meinem Mac wurde mit rvm installiert, ich bin nicht die Standardeinstellung verwenden, die mit os x geliefert wird):
Hinzufügen zu Ihren
gem install mysql2
Flaggen unten--srcdir="..."
- das beinhaltet--with-mysql-dir="..."
- das MySQL-Verzeichnis--with-mysql-config="..."
- die Datei mysql_configso was
gem install mysql2 --srcdir=/usr/local/mysql/include/ --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
quelle
In Centos 6.x (7 sollte funktionieren) mit SCL (Software Collection) rh-mysql:
scl enable rh-mysql56 bash gem install mysql2 -v '0.4.5' -- --with-mysql-include=/opt/rh/rh-mysql56/root/usr/include --with-mysql-lib=/opt/rh/rh-mysql56/root/usr/lib64
quelle
Ich denke, wenn Sie
rvm use [email protected] --create
in Ihr Verzeichnis eingeben, dannbundle install
funktioniert es.quelle