Errore durante l'installazione mysql2: riusciti a costruire gioiello estensione nativa
-
25-09-2019 - |
Domanda
Sto avendo alcuni problemi quando si tenta di installare gioiello mysql2
per Rails. Quando provo ad installarlo eseguendo bundle install
o gem install mysql2
mi dà il seguente errore:
Errore durante l'installazione mysql2: ERRORE:. Riusciti a costruire gioiello estensione nativa
Come posso risolvere questo problema e installare correttamente mysql2
?
Soluzione
Su Ubuntu / Debian e altre distribuzioni che utilizzano attitudinale:
sudo apt-get install libmysql-ruby libmysqlclient-dev
Il pacchetto libmysql-ruby
è stata gradualmente eliminata e sostituita da ruby-mysql
. Questo è dove ho trovato la soluzione.
Se il comando di cui sopra non funziona perché libmysql-ruby
non può essere trovato, il seguente dovrebbe essere sufficiente:
sudo apt-get install libmysqlclient-dev
Su Red Hat / CentOS e altre distribuzioni che utilizzano yum:
sudo yum install mysql-devel
In Mac OS X con Homebrew :
brew install mysql
Altri suggerimenti
Sono su un Mac e l'uso homebrew installare programmi open source. Ho dovuto installare gli strumenti Mac Dev per installare homebrew, ma dopo che si trattava di un semplice:
brew install mysql
per installare MySQL. Non ho avuto un problema mysql gioiello da allora.
ecco una soluzione per gli utenti di Windows , la speranza che aiuta!
Uso MySQL con Rails 3 su Windows
-
Installa railsinstaller -> www.railsinstaller.org (ho installato in C: \ Rails)
-
Installa MySQL (io ho usato MySQL 5.5) -> dev.mysql.com/downloads/installer /
--- per l'installazione mySQL ---
Se non dispone già di questi due file installato potrebbe essere necessario loro per ottenere il vostro MySQL andare
vcredist_x86.exe -> http://www.microsoft.com/download/ it / Details.aspx? id = 5555 dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/ it / Details.aspx? id = 17718
installazione di default Usa Developer macchina-MySQL Server Config -
porto: 3306
Nome del servizio: MySQL55
mysql passaggio root: root (è possibile modificare in seguito)
(Username: root)
-MySQL Server Config ---- per l'installazione mySQL ---
--- Installare il mysql2 Gem ---
Importante: Fare questo con Git Bash riga di comando (questo è stato installato con railsinstaller) -> start / Git Bash
gem install mysql2 - '--with-mysql-lib = "C: \ Programmi \ MySQL \ MySQL Server 5.5 \ lib" --with-mysql-includono = "c: \ Program Files \ MySQL \ MySQL Server 5.5 \ include " '
Ora la gemma dovrebbe avere installato correttamente
Infine copiare il file libmysql.dll da
C: \ Programmi \ MySQL \ MySQL Server 5.5 \ lib
a
C: \ Rails \ Ruby1.9.2 \ bin
--- Installare il mysql2 Gem ---
Ora sarà in grado di utilizzare la vostra applicazione Rails con MySQL, se non siete sicuri di come creare un'applicazione Rails 3 con MySQL continua a leggere ...
--- ottenere un Rails 3 app andando con MySQL ---
Aprire il prompt dei comandi (non Git Bash) -> start / cmd
Passare alla cartella (c: \ Siti)
Creare nuove rotaie app
rails new world
Eliminare il file C: \ Siti \ mondo \ public \ index.html
Modificare il file C: \ Siti \ mondo \ config \ routes.rb
aggiungere questa riga -> root: a => 'città # index'
Apri prompt dei comandi (generare viste e controller)
rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer
Modificare il file C: \ Siti \ mondo \ app \ modelli \ city.rb a guardare come questo
class City < ActiveRecord::Base
set_table_name "city"
end
Modificare il file C: \ Siti \ mondo \ config \ database.yml a guardare come questo
development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock
aggiungi al Gemfile
gem 'mysql2'
Apri Prompt dei comandi di Windows cmd non Git Bash (eseguire l'app!)
Passare alla cartella app (c: \ Siti \ mondo)
rails s
Aprire il browser qui -> http: // localhost: 3000
--- ottenere un Rails 3 app andando con MySQL ---
Ho diversi computer, 32 e 64 bit del processore, che corrono su Ubuntu Linux, Maverick (10.10) di rilascio.
Ho avuto lo stesso problema, e per me, la
sudo apt-get install libmysql-ruby libmysqlclient-dev
ha fatto il lavoro !!!
Un altro modo per MacOS utenti
Se è stato utilizzato "birra" per installare mysql:
gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config
x.x.x = versione del gioiello mysql2 si desidera installare
y.y.y = la versione di MySQL è stato installato ls /usr/local/Cellar/mysql
a trovarlo.
Hai provato a usare
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
per specificare la posizione di TheBase directory così come il percorso per le librerie di MySQL che sono necessarie per completare l'installazione gemma?
Fonti: MySQL gem install ERRORE: impossibile costruire gioiello nativo estensione MySQL Forum :: :: Rubino Help needed con l'installazione di MySQL vincolante per Ruby
Se si utilizza yum provare:
sudo yum install mysql-devel
Questo risolto il mio problema una volta in 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
Se si verificano ancora problemi ....
Provare ad installare
sudo apt-get install ruby1.9.1-dev
Ho avuto questo problema su Windows 7. Questo è apparentemente un problema di incompatibilità e la soluzione è la seguente:
Scarica il file libmySQL.dll
da un programma di installazione InstantRails più vecchio. E 'disponibile dal InstantRails GitHub repo .
Avanti, copiare il file nella cartella di Ruby / bin.
Ora, si è pronti per partire;)
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
ho ottenuto questo errore troppo. Risolto con l'installazione di pacchetti di sviluppo. Sto usando arco ed è stato:
sudo pacman -S base-devel
che ha installato:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc,
libtool, make, patch, pkg-config
ma credo che sia effettivamente necessario marca e gcc. Uscita di errore detto (sulla mia macchina, tra l'altro):
"È necessario installare gli strumenti di sviluppo per primo."
Quindi, è stata una decisione ovvia e mi ha aiutato.
È necessario installare alcune dipendenze
sudo apt-get install libmysql-ruby libmysqlclient-dev
Su Debian Stretch il pacchetto che ha funzionato per me è stato default-libmysqlclient-dev
sudo apt-get update && apt-get install -y default-libmysqlclient-dev
Sono stato in esecuzione in questo errore sul mio Mac e ho scoperto che avevo bisogno di aggiornare da mysql a 32 bit a 64 bit mysql per ottenere questo errore di andare via. Stavo correndo OSX 10.6 su un processore Intel MacBook Pro con rubino 1.9.2 e rails3.0.0
Ho anche bisogno di installare Xcode al fine di ottenere utility Unix come "fare" che sono necessari per compilare la gemma.
Una volta che questo è stato fatto sono stato in grado di eseguire gem install mysql e gem install mysql2 senza errori.
Nel mio caso questo ha aiutato:
$ export LDFLAGS="-L/usr/local/opt/openssl/lib"
$ export CPPFLAGS="-I/usr/local/opt/openssl/include"
Quindi:
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
Risultato:
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
Vedi questo post (ATTENZIONE: la lingua giapponese all'interno).
Per gli utenti di Windows: È impostare la lib e comprendono percorso del mysql, per esempio, se state usando XAMPP è possibile avere in questo modo:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
La soluzione funziona solo su Mac OS X
Se avete installato MySQL con homebrew, che cosa ha funzionato per me è stato Disinstallo MySQL, e l'installazione di MySQL Community Edition tramite il sito web di MySQL ( https://www.mysql.com/ ).
Dopo aver installato, appena ri-immettere il comando per gem install mysql2
o, se necessario, sudo gem install mysql2
, se hai trovato permesso negato problemi.
Ho avuto la gemma costruita su Mac OS X 10.6.6 per
1) Garantire il pacchetto Strumenti per sviluppatori è installato
2) Scaricando il pacchetto MySQL corrente (5.5.8 nel mio caso) da sorgenti
3) Installazione dello strumento di cmake da cmake.org
4) In seguito le istruzioni nella sezione 2.11 di INSTALL-SOURCE dai file di distribuzione mysql
5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include
La gemma costruito con successo, ma ci sono due errori nella documentazione rdoc e Ri lamentarsi.
Ma ora quando provo a richiedere 'mysql2' ho un
LoadError: no such file to load -- mysql2/mysql2
Speravo l'errore vorrei ottenere è che il libmysqlclient.16.dylib non è stato trovato perché abbiamo capito che in un altro post (ricerca di install_name_tool).
Il mio $ PATH ha / usr / local / mysql in esso (quella in cui si trovano la mia fonte e file incorporati), quindi sono un po 'perplesso. Se qualcuno ha qualche pensiero, vado a controllare di nuovo dopo poche ore di sonno.
Se ancora ottenere l'errore quindi seguire i passi di installazione mysql2 gemma on Rails 3 su -
http: // rorguide. blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
dove la maggior parte degli utenti sono stati in grado di installare mysql2 gemma.
Dopo aver ottenuto i problemi mysql-dev corretti, potrebbe essere necessario rimuovere installare il cattivo mysql2. Guardate attentamente i messaggi dopo $ bundle install. Potrebbe essere necessario
rm -rf vendor/cache/
rm -rf ./Zentest
Questo cancellerà l'installazione mysql2 male in modo che un $ finale bundle install in grado di creare un buon compromesso.
scaricare la versione giusta di mysqllib.dll poi copiarlo rubino bin funziona davvero per me. Segui questo link plases mysql2 gioiello compilato per mysql sbagliato libreria client
Got il "È necessario installare gli strumenti di sviluppo per primo." di errore quando si tenta di installare la gemma mysql2 dopo l'aggiornamento a Mac OS X Mountain Lion . A quanto pare questa operazione di aggiornamento rimuove i compilatori della riga di comando.
Per risolvere:
- Ho disinstallato la mia vecchia versione di Xcode (correva lo script di disinstallazione in / Developer / Library). Poi cancellato la directory / Developer.
- Siamo andati in AppStore e scaricato Xcode.
- Lanciato Xcode e andò in Preferenze -.> Download, e installato gli strumenti della riga di comando
Si stanno ottenendo questo problema perché non avete installare MySQL. Prima di installare gemma mysql2. Installare MySQL. Dopo di che mysql2 gioiello verrà installato.
Volevo solo aggiungere questa risposta appositamente per Utenti Mac .
Il mio server era in esecuzione perfettamente bene fino a quando ho aggiornato il mio Xcode. La durante l'avvio il mio server rotaie l'errore è stato mostrato come questo
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)
E c'era il suggerimento di installare mysql2 gioiello alla fine del messaggio di errore. Così, quando ho provato l'installazione ho ottenuto l'errore come sopra menzionato in questa domanda. L'errore ho ottenuto è la seguente
ERROR: Error installing mysql2:
ERROR: Failed to build gem native extension.
Quindi, come suggerito in questo post ho provato 'brew installare mysql' e che lasciò dicendo che la versione mysql così e così già installato. Ma c'era di avvertimento prima di 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
Poi ho provato questo sudo xcodebuild -license
e il tipo di 'accordo' alla fine. Devi essere root per accettare la licenza.
Dopo questo, ho di nuovo provato bundle install e quindi tutto funziona bene come normale. [Anche a causa di questo Xcode updation, ho avuto un problema con la mia torre anche.]
libmysql-ruby
è stata gradualmente eliminata e sostituita. Nuovo comando:
sudo apt-get install ruby-mysql libmysqlclient-dev
Ci scusiamo per questo dovrebbe essere un commento sulla di Spacemonkey risposta ma i miei non hanno abbastanza reputazione per farlo.
Voglio aggiungere che se si sta utilizzando mariadb invece di MySQL su CentOS 7 è sufficiente installare il pacchetto MariaDB-condivisa per correggere l'errore.
yum install MariaDB-shared -y