rails Errore durante l'installazione di mysql2: impossibile creare l'estensione nativa gem




rails gem mysql2 (20)

Sto riscontrando qualche problema durante il tentativo di installare mysql2 gem per Rails. Quando provo a installarlo eseguendo bundle install o gem install mysql2 mi dà il seguente errore:

Errore durante l'installazione di mysql2: ERRORE: impossibile creare l'estensione nativa gem.

Come posso risolvere questo problema e installare con successo mysql2 ?


Se hai ancora problemi ...

Prova ad installare

   sudo apt-get install ruby1.9.1-dev


Stai riscontrando questo problema perché non hai installato MySql. Prima di installare mysql2 gem. Installa MySQL. Dopo che mysql2 gem verrà installato.



Un altro modo per gli utenti MacOS

Se hai usato "brew" per installare mysql:

gem install mysql2 -v 'x.x.x' -- --with-mysql-config=/usr/local/Cellar/mysql/y.y.y/bin/mysql_config

xxx = versione della gemma mysql2 che si desidera installare
yyy = la versione di mysql hai installato ls /usr/local/Cellar/mysql per trovarlo.



Ho ottenuto la gemma costruita su Mac OS X 10.6.6 di 1) Garantire che il pacchetto di strumenti per gli sviluppatori sia installato 2) Scaricare l'attuale pacchetto MySQL (5.5.8 nel mio caso) da Source 3) Installare lo strumento cmake da cmake.org 4 ) Seguendo 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 gem costruita con successo, ma ci sono due errori nella documentazione che rdoc e ri si lamentano. Ma ora, quando provo a richiedere "mysql2", ottengo a

LoadError: no such file to load -- mysql2/mysql2

Speravo che l'errore che avrei ottenuto fosse impossibile trovare il libmysqlclient.16.dylib perché lo abbiamo trovato in un altro post (cercare install_name_tool).

Il mio $ PATH ha / usr / local / mysql in esso (è lì che si trovano la mia fonte e i file creati), quindi sono un po 'perplesso. Se qualcuno ha qualche pensiero, controllerò dopo alcune ore di sonno.


Stavo correndo questo errore sul mio mac e ho scoperto che avevo bisogno di aggiornare da mysql a 32 bit a mysql a 64 bit per ottenere questo errore di andare via. Stavo eseguendo OSX 10.6 su un MacBook Pro Intel con Ruby 1.9.2 e Rails3.0.0

Avevo anche bisogno di installare xcode per ottenere utility UNIX come "make" necessarie per compilare la gemma.

una volta fatto questo, sono stato in grado di eseguire gem install mysql e gem install mysql2 senza errori.


Ho diversi computer, un processore a 32 e 64 bit, funzionano su Ubuntu Linux, Maverick (10.10).

Ho avuto lo stesso problema, e per me, il sudo apt-get install libmysql-ruby libmysqlclient-dev fatto il lavoro !!!


Ho avuto questo problema con il mio Windows 7. Questo è apparentemente un problema di incompatibilità e la soluzione è la seguente: Scarica il file mysql.dll da un vecchio programma di installazione di InstantRails. Il link http://tinyurl.com/24ocp8u scaricherà solo il file mysql.dll (è il link al repository svn di InstantRails). Quindi, copia quel file nella tua cartella Ruby / bin. Ora, sei a posto;)


Sono su un mac e uso Homebrew per installare programmi open source. Ho dovuto installare mac Dev tools per installare homebrew, ma dopo è stato semplice:

brew install mysql

installare mysql. Da allora non ho mai avuto un problema con la gemma mysql.


Dopo aver corretto i problemi di mysql-dev, potrebbe essere necessario rimuovere l'installazione di mysql2 non valida. Osserva attentamente i messaggi dopo l'installazione di $ bundle. Potrebbe essere necessario

rm -rf vendor/cache/
rm -rf ./Zentest

Questo cancellerà l'installazione di mysql2 in modo tale che un'installazione finale di $ bundle possa crearne una buona.


Volevo solo aggiungere questa risposta specificamente per gli utenti Mac .

Il mio server funzionava perfettamente fino a quando ho aggiornato il mio xcode. All'avvio del mio server di rails l'errore è stato mostrato in questo modo

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 gem alla fine del messaggio di errore. Quindi quando ho provato a installarlo ho ricevuto l'errore come sopra menzionato in questa domanda. L'errore che ho ottenuto è il seguente

ERROR:  Error installing mysql2:
ERROR: Failed to build gem native extension.

Quindi, come suggerito in questo post ho provato 'brew install mysql' e questo ha smesso di dire che la versione di mysql così e così già installata. Ma c'era un 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 sudo xcodebuild -license digitato 'agree' alla fine. Devi essere root per accettare la licenza.

Dopo questo, ho ancora una volta provato l'installazione di bundle e poi tutto funziona come al solito. [Anche a causa di questo aggiornamento xcode, ho avuto problemi anche con la mia torre.]


Questo ha 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

Su Debian Stretch il pacchetto che ha funzionato per me era predefinito-libmysqlclient-dev

sudo apt-get update && apt-get install -y default-libmysqlclient-dev


Per utente windows: puoi impostare lib e includere path del tuo mysql, ad esempio, se stai usando xampp puoi avere questo tipo:

gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'


Su Ubuntu / Debian e altre distribuzioni usando aptitude:

sudo apt-get install libmysql-ruby libmysqlclient-dev

Il pacchetto libmysql-ruby è stato eliminato e sostituito da ruby-mysql . This è dove ho trovato la soluzione.

Se il comando precedente non funziona perché non è possibile trovare libmysql-ruby , quanto segue dovrebbe essere sufficiente:

sudo apt-get install libmysqlclient-dev

Su Red Hat / CentOS e altre distribuzioni usando yum:

sudo yum install mysql-devel

Su Mac OS X con Homebrew :

brew install mysql

ecco una soluzione per gli utenti di Windows , spero che aiuti!

Utilizzo di MySQL con Rails 3 su Windows

  • Installa railsinstaller -> www.railsinstaller.org (l'ho installato su c: \ Rails)

  • Installa MySQL (ho usato MySQL 5.5) -> dev.mysql.com/downloads/installer/

--- per l'installazione mySQL ---

Se non hai già questi due file installati potresti averne bisogno per far funzionare MySQL

vcredist_x86.exe -> http://www.microsoft.com/download/en/details.aspx?id=5555 dotNetFx40_Full_x86_x64.exe -> http://www.microsoft.com/download/en/details.aspx?id=17718

Usa la macchina di sviluppo di installazione predefinita

-MySQL Server Config-
porta: 3306
nome del servizio di Windows: MySQL55
mysql root pass: root (puoi cambiarlo più tardi)
(username: root)
-MySQL Server Config-

--- per l'installazione mySQL ---


--- Installa la gemma mysql2 ---

Importante: fai questo con Git Bash Command Line (questo è stato installato con railsinstaller) -> start / Git Bash

gem install mysql2 - '--with-mysql-lib = "c: \ Programmi \ MySQL \ MySQL Server 5.5 \ lib" --with-mysql-include = "c: \ Programmi \ MySQL \ MySQL Server 5.5 \ includere"'

Ora la gemma dovrebbe essere installata correttamente

Copiare infine il file libmysql.dll da
C: \ Programmi \ MySQL \ MySQL Server 5.5 \ lib
a
C: \ Rails \ Ruby1.9.2 \ bin

--- Installa la gemma mysql2 ---


Ora sarai in grado di utilizzare la tua app Rails con MySQL, se non sei sicuro di come creare un'applicazione Rails 3 con MySQL continua a leggere ...

--- Ottieni un'applicazione Rails 3 con MySQL ---

Apri prompt dei comandi (non Git Bash) -> start / cmd
Passare alla cartella (c: \ Sites)
Crea una nuova app per i binari

rails new world

Elimina il file c: \ Sites \ world \ public \ index.html
Modifica il file c: \ Sites \ world \ config \ routes.rb
aggiungi questa linea -> root: to => 'cities # index'

Apri prompt dei comandi (genera viste e controllori)

rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer



Modifica il file c: \ Sites \ world \ app \ models \ city.rb in modo che assomigli a questo

class City < ActiveRecord::Base
 set_table_name "city"
end

Modificare il file c: \ Sites \ world \ config \ database.yml in modo che assomigli a questo

development:
adapter: mysql2
encoding: utf8
database: world
pool: 5
username: root
password: root
socket: /tmp/mysql.sock

aggiungi a gemfile

gem 'mysql2'

Apri prompt dei comandi di windows cmd, non Git Bash (esegui la tua app!)
Passare alla cartella dell'app (c: \ Sites \ world)

rails s

Apri il tuo browser qui -> http: // localhost: 3000

--- Ottieni un'applicazione Rails 3 con MySQL ---


Se stai usando yum prova:

sudo yum install mysql-devel






mysql2