rails - gem mysql2 versions
Ruby gem mysql2 instala falla (11)
Cuando trato de instalar la gema mysql2, falla sin errores aparentes. ¿Alguien sabe qué hacer para evitar esto, así que las instalaciones de mysql2?
Tanner-Smiths-MacBook-Pro:Humans_vs_Zombies_Parse tanner$ sudo gem install mysql2Building 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
Cavé durante 2 días en Internet y , y no fue hasta que encontré este enlace y luego comencé a trabajar con este ticket para mysql2 que resolví el problema.
Con mi configuración (como se explica en el ticket), los interruptores del compilador de -Wno-null-conversion -Wno-unused-private-field se romperían y darían un error que no era exactamente correcto, que era:
mysql.h is missing. please check your installation of mysql and try again
Con Brew y MySQL instalados, usé lo siguiente para instalar la gema mysql2
gem install mysql2 -- --with-mysql-config=/usr/local/Cellar/mysql/5.5.10/bin/mysql_config
Si está usando Bundler, puede decirle a bundler sobre esto con el comando:
bundle config build.mysql2 --with-mysql-config=/usr/local//Cellar/mysql/5.5.10/bin/mysql_config
Como se documenta aquí: http://gembundler.com/man/bundle-config.1.html
Debes tener instalado MySQL de 64 bits en tu máquina, además de las herramientas de compilación que obtienes al instalar xcode.
En Centos 6.x (7 debería funcionar) con SCL (colección de software) 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
Es posible que desee comprobar este hilo en el sitio web de MySQL: http://forums.mysql.com/read.php?116,178217,178217 , en particular la respuesta de Scott Derrick: http://forums.mysql.com/read.php?116,178217,189357#msg-189357
Para ser más específico, intente usar
sudo gem install mysql2 -- --with-mysql-dir=/usr/local/mysql
Espero que ayude.
Lo resolví especificando dónde están los directorios, sin necesidad de volver a instalar nada , con brew o macports o lo que sea, simplemente especificando dónde están las cosas (solo una cosa: el ruby en mi mac se instaló con rvm, estoy no usar el predeterminado que viene con os x):
añadiendo a su gem install mysql2
las banderas a continuación
-
--srcdir="..."
- incluye -
--with-mysql-dir="..."
- el directorio mysql -
--with-mysql-config="..."
- el archivo mysql_config
como esta gem install mysql2 --srcdir=/usr/local/mysql/include/ --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
Necesita compilar los encabezados de desarrollo de MySQL para mysql2. Esto es necesario, porque gran parte de la funcionalidad está escrita en C y posteriormente enlazada con MySQL.
Una solución es apuntar el instalador de gemas a su carpeta de instalación de mysql explícitamente como tal
gem install mysql2 -- --with-mysql-dir=/usr/local/mysql
# or where ever you installed your mysql server to
o instalando un servidor mysql en una ubicación conocida (por ejemplo, usando homebrew ) y luego instalando la gema
# install the mysql server locally
brew install mysql
# install the gem
gem install mysql2
Ambos enfoques requieren que tenga XCode instalado para tener el compilador GCC requerido.
Supongo que si escribe rvm use [email protected] --create
en su directorio y luego bundle install
todo.
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
Salida:
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
Ubuntu:
sudo apt-get install libmysqlclient-dev #(mysql development headers)
sudo gem install mysql2 -- --with-mysql-dir=/etc/mysql/
¡Eso es!
Resultado:
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
en Mac OSX Moutain Lion, debajo del comando funcionó para mí:
gem install mysql2 -- --srcdir=/usr/local/mysql/include