Erreur lors de l'installation de mysql2 :Échec de la création de l'extension native de gem
-
25-09-2019 - |
Question
J'ai quelques problèmes en essayant d'installer mysql2
joyau pour Rails.Quand j'essaie de l'installer en exécutant bundle install
ou gem install mysql2
cela me donne l'erreur suivante :
Erreur lors de l'installation de mysql2 :ERREUR:Échec de la création de l'extension native Gem.
Comment puis-je résoudre ce problème et installer avec succès mysql2
?
La solution
Sur Ubuntu / Debian et d'autres distributions utilisant aptitude:
sudo apt-get install libmysql-ruby libmysqlclient-dev
Forfait libmysql-ruby
a été éliminé et remplacé par ruby-mysql
. Cette est là où je trouve la solution.
Si la commande ci-dessus ne fonctionne pas parce que libmysql-ruby
ne peut être trouvé, ce qui suit devrait être suffisant:
sudo apt-get install libmysqlclient-dev
Red Hat / CentOS et d'autres distributions utilisant yum:
sudo yum install mysql-devel
Sous Mac OS X avec Homebrew :
brew install mysql
Autres conseils
Je suis sur un mac et utiliser homebrew pour installer des programmes open source. Je ne dois installer les outils Mac Dev pour installer homebrew, mais après que c'était simple:
brew install mysql
pour installer MySQL. Je ne l'ai pas eu un problème de gemme depuis MySQL.
ici est une solution pour les fenêtres utilisateurs , espérons qu'il aide!
Utilisation de MySQL avec Rails 3 sur Windows
-
Installer railsinstaller -> www.railsinstaller.org (je l'ai installé à c: \ Rails)
-
Installer MySQL (je MySQL 5.5) -> dev.mysql.com/downloads/installer /
--- pour Mysql ---
Si vous ne possédez pas déjà ces deux fichiers installé, vous pourriez avoir besoin pour obtenir votre MySQL va
vcredist_x86.exe -> http://www.microsoft.com/download/ fr / Details.aspx? id = 5555 dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/ fr / Details.aspx? id = 17718
Utiliser installation par défaut Developer Machine-MySQL Config serveur - Port: 3306
fenêtres nom du service: MySQL55
MySQL passe root: root (vous pouvez changer plus tard)
(Nom d'utilisateur: root)
-MySQL Config serveur ---- pour Mysql ---
--- Installer le mysql2 Gem ---
Important: Faites-le avec Git Bash ligne de commande (cela a été installé avec railsinstaller) -> start / Git Bash
gem install mysql2 - « --with-mysql-lib = "c: \ Program Files \ MySQL \ MySQL Server 5.5 \ lib" --with-mysql-include =" c: \ Program Files \ MySQL \ MySQL Server 5.5 \ include "
Maintenant, le bijou doit avoir installé correctement
Enfin copier le fichier libmysql.dll
C: \ Program Files \ MySQL \ MySQL Server 5.5 \ lib
à
C: \ Rails \ Ruby1.9.2 \ bin
--- Installer la gemme mysql2 ---
Vous allez maintenant être en mesure d'utiliser votre application Rails avec MySQL, si vous n'êtes pas sûr de savoir comment créer un Rails 3 application avec MySQL lire ...
--- Obtenez une application Rails 3 aller avec MySQL ---
invite de commande d'ouverture (non Git Bash) -> start / cmd
Accédez à votre dossier (c: \ Sites)
Créer de nouveaux rails app
rails new world
Supprimer le fichier c: \ Sites \ world \ public \ index.html
Modifiez le fichier c: \ Sites \ world \ config \ routes.rb
ajoutez cette ligne -> root: à => '# villes index'
invite de commande Open (générer des vues et contrôleurs)
rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer
Modifiez le fichier c: \ Sites \ monde modèles \ app \ \ city.rb pour ressembler à ceci
class City < ActiveRecord::Base
set_table_name "city"
end
Editer le fichier c: \ Sites \ world \ config \ database.yml pour ressembler à ceci
development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock
ajouter à Gemfile
gem 'mysql2'
Ouvrir Invite de commandes windows cmd, pas Git Bash (lancez votre application!)
Accédez à votre dossier app (c: \ Sites \ monde)
rails s
Ouvrez ici votre navigateur -> http: // localhost: 3000
--- Obtenez une application Rails 3 aller avec MySQL ---
I ai plusieurs ordinateurs, le processeur 32 et 64 bits, ils courent sur la libération Linux Ubuntu, Maverick (10,10).
J'ai eu le même problème, et pour moi, la
sudo apt-get install libmysql-ruby libmysqlclient-dev
a fait le travail !!!
Une autre façon pour les utilisateurs MacOS
Si vous avez utilisé "brasser" pour installer MySQL:
gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
x.x.x = version de la gemme mysql2 que vous souhaitez installer
y.y.y = la version de MySQL que vous avez installé ls /usr/local/Cellar/mysql
pour le trouver.
Avez-vous essayé d'utiliser
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
pour spécifier l'emplacement du répertoire TheBase ainsi que le chemin vers les bibliothèques MySQL qui sont nécessaires pour terminer l'installation de pierres précieuses?
Sources: MySQL Gem erreur d'installation: Impossible de créer l'extension native joyau MySQL Forums :: Ruby :: Besoin d'aide à l'installation de liaison MySQL pour Ruby
Si vous utilisez yum essayer:
sudo yum install mysql-devel
résolu mon problème une fois dans Windows:
subst X: "C:\Program files\MySQL\MySQL Server 5.5"
gem install mysql2 -v 0.x.x --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt
subst X: /D
Si vous rencontrez toujours des problèmes ....
Essayez d'installer
sudo apt-get install ruby1.9.1-dev
J'ai eu ce problème sur Windows 7. Ceci est apparemment un problème d'incompatibilité et la solution est la suivante:
Télécharger le fichier libmySQL.dll
d'un ancien InstantRails installateur. Il est disponible à partir du InstantRails repo GitHub .
Ensuite, copiez ce fichier dans votre dossier Ruby / bin.
Maintenant, vous êtes bon pour aller;)
MacOS Mojave :
gem install mysql2 -v '0.5.2' -- --with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include
Je suis cette erreur aussi. Résolu en installant des paquets de développement. J'utilise arc et il était:
sudo pacman -S base-devel
qui a installé:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config
mais je pense qu'il faut vraiment faire et gcc. Sortie d'erreur dit (sur ma machine, entre autres):
"Vous devez installer les outils de développement d'abord".
Il était donc une décision évidente et il a aidé.
Vous devez installer des dépendances
sudo apt-get install libmysql-ruby libmysqlclient-dev
Sur Debian Tendez le package qui a fonctionné pour moi était default-libmysqlclient-dev
sudo apt-get update && apt-get install -y default-libmysqlclient-dev
Je courais dans cette erreur sur mon mac et a trouvé que je devais passer de MySQL mysql 32bit 64 bits pour obtenir cette erreur pour aller. Je courais OSX 10.6 sur un macbook pro intel avec Ruby 1.9.2 et rails3.0.0
J'ai aussi besoin d'installer Xcode afin d'obtenir les services publics unix « faire » qui sont nécessaires pour établir le bijou.
Une fois que cela a été fait, je suis en mesure d'exécuter gem install mysql et gem install mysql2 sans erreur.
Dans mon cas, cela a contribué à:
$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"
Alors:
gem install mysql2 -v '0.5.2' --source 'https://rubygems.org/' -- --with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib
Résultat:
Building native extensions with: '--with-cppflags=-I/usr/local/opt/openssl/include --with-ldflags=-L/usr/local/opt/openssl/lib'
This could take a while...
Successfully installed mysql2-0.5.2
Parsing documentation for mysql2-0.5.2
Installing ri documentation for mysql2-0.5.2
Done installing documentation for mysql2 after 0 seconds
1 gem installed
Voir cette post (ATTENTION: langue japonaise à l'intérieur).
Pour l'utilisateur Windows: Vous définissez le répertoire lib et include_path de votre mysql, par exemple, si vous êtes en utilisant xampp vous pouvez avoir comme ceci:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
Solution fonctionne uniquement sous Mac OS X
Si vous avez installé MySQL avec homebrew, ce qui a fonctionné pour moi a été le désinstalle MySQL, et l'installation de MySQL Community Edition via le site MySQL ( https://www.mysql.com/ ).
Après installé, il suffit à nouveau entrer la commande gem install mysql2
ou le cas échéant, sudo gem install mysql2
, si vous obtenez l'autorisation refusée problèmes.
Je suis le petit bijou construit sur Mac OS X 10.6.6 par
1) Assurer l'ensemble des outils de développement est installé
2) Télécharger le package MySQL en cours (5.5.8 dans mon cas) de la source
3) Installation de l'outil de cmake de cmake.org
4) En suivant les instructions de la section 2.11 INSTALLATION-SOURCE à partir des fichiers de distribution de MySQL
5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include
Le petit bijou construit avec succès, mais il y a deux erreurs qui rdoc et ri se plaignent de la documentation sur.
Mais maintenant, quand je tente d'exiger «mysql2 Je reçois un
LoadError: no such file to load -- mysql2/mysql2
J'espérais l'erreur que je recevrais était que le libmysqlclient.16.dylib n'a pu être trouvée parce que nous avons pensé que dans un autre poste (recherche install_name_tool).
Mon $ PATH a / usr / local / mysql dans ce (c'est là ma source et les fichiers sont situés construit), donc je suis un peu perplexe. Si quelqu'un a des pensées, je vais vérifier au bout de quelques heures de sommeil.
Si l'erreur en obtenant puis suivez les étapes de l'installation mysql2 gem on Rails 3 sur -
http: // rorguide. blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
où la plupart des utilisateurs ont pu installer gem mysql2.
Une fois que vous obtenez les problèmes de mysql-dev corrigées, vous devrez peut-être supprimer la mauvaise mysql2 installer. Regardez attentivement les messages après fibré $ installer. Vous devrez peut-être
rm -rf vendor/cache/
rm -rf ./Zentest
Cela effacera la mauvaise installation de mysql2 de sorte qu'un faisceau de $ installation final peut créer un bon.
téléchargez la bonne version de mysqllib.dll puis copiez-la dans Ruby Bin qui fonctionne vraiment pour moi.Suivez ce lien plas Gemme mysql2 compilée pour une mauvaise bibliothèque client mysql
Vous avez la « Vous devez installer les outils de développement en premier. » erreur lorsque vous essayez d'installer la gemme mysql2 après mise à niveau vers Mac OS X Mountain Lion . Apparemment faire cette mise à jour supprime les compilateurs de ligne de commande.
Pour résoudre:
- Je désinstallé ma version très ancienne de Xcode (couru le script de désinstallation dans / Developer / Library). Ensuite supprimé le répertoire / développeur.
- Je suis allé à l'AppStore et téléchargé Xcode.
- Lancé Xcode et est entré dans les Préférences -> Téléchargements et installé les outils de ligne de commande .
Vous obtenez ce problème parce que vous ne l'avez pas installer MySql. Avant d'installer bijou mysql2. Installer MySQL. Après ce joyau de mysql2 installera.
Je voulais juste ajouter cette réponse spécifiquement pour Utilisateurs Mac .
Mon serveur fonctionnait parfaitement bien jusqu'à ce que je mis à jour mon Xcode. Le tout en commençant mon serveur rails l'erreur a été montré comme ceci
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql-
checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3-
p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an
executable file. (RuntimeError)
Et il y avait suggéré d'installer gem mysql2 à la fin du message d'erreur. Alors, quand je l'ai essayé de l'installer, je suis l'erreur comme mentionné ci-dessus dans cette question. L'erreur que je suis arrivé est la suivante
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
Donc, comme suggéré dans ce post, j'ai essayé Brew installer MySQL et que quittai en disant que la version de MySQL untel déjà installé. Mais il y avait d'avertissement avant de dire
Warning: You have not agreed to the Xcode license.
Builds will fail! Agree to the license by opening Xcode.app or running:
xcodebuild -license
Alors j'ai essayé ce sudo xcodebuild -license
et le type « d'accord » à la fin. Vous devez être root pour accepter la licence.
Après cela, je bundle essayé à nouveau installer et tout fonctionne bien comme d'habitude. [Même en raison de cette updation Xcode, j'ai eu problème avec ma tour aussi.]
libmysql-ruby
a été éliminé et remplacé. Nouvelle commande:
sudo apt-get install ruby-mysql libmysqlclient-dev
Pour ceux qui utilisent Windows 7 et 64 bits MySQL
Si vous voulez utiliser MySQL 64 bits, vous devez suivre les instructions ici (aussi ).
Désolé pour cela devrait être un commentaire sur de réponse spacemonkey mais mes n'ont pas assez la réputation de le faire.
Je veux ajouter que si vous utilisez MariaDB au lieu de MySQL sur CentOS 7 vous avez juste besoin d'installer le paquet partagé MariaDB à corriger l'erreur.
yum install MariaDB-shared -y