2015-06-14 14 views
18

Im cercando di installare un open rotaie fonte 3.2.21 un'applicazione che utilizza il mysql2 gemma, ma quando provo ed eseguire il bundle comandato ottengo il seguente errore:di errore quando si tenta di installare app con mysql2 gemma

Fetching: mysql2-0.3.18.gem (100%) 
Building native extensions. This could take a while... 
p 
ERROR: Error installing mysql2: 
    ERROR: Failed to build gem native extension. 

    /Users/my_username/.rvm/rubies/ruby-2.1.2/bin/ruby -r ./siteconf20150614-72129-orqsb7.rb extconf.rb 
checking for ruby/thread.h... yes 
checking for rb_thread_call_without_gvl() in ruby/thread.h... yes 
checking for rb_thread_blocking_region()... yes 
checking for rb_wait_for_single_fd()... yes 
checking for rb_hash_dup()... yes 
checking for rb_intern3()... yes 
----- 
Using mysql_config at /usr/local/bin/mysql_config 
----- 
checking for mysql.h... yes 
checking for errmsg.h... yes 
checking for mysqld_error.h... yes 
----- 
Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load 
----- 
----- 
Setting libpath to /usr/local/Cellar/mysql/5.6.25/lib 
----- 
creating Makefile 

make "DESTDIR=" clean 

make "DESTDIR=" 
compiling client.c 
compiling infile.c 
compiling mysql2_ext.c 
compiling result.c 
linking shared-object mysql2/mysql2.bundle 
ld: warning: directory not found for option '-L/Users/travis/.sm/pkg/active/lib' 
ld: library not found for -lssl 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [mysql2.bundle] Error 1 

make failed, exit code 2 

Gem files will remain installed in /Users/my_username/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/gems/mysql2-0.3.18 for inspection. 
Results logged to /Users/my_username/.rvm/rubies/ruby-2.1.2/lib/ruby/gems/2.1.0/extensions/x86 

ho provato a disinstallare tutte le versioni di mysql ho installato tramite homebrew e la reinstallazione di loro, in questo modo:

brew uninstall --force mysql && brew install mysql 

poi eseguire:

sudo gem install mysql2 

Come suggerito da un numero di domande simili poste qui, ma risulta comunque lo stesso errore di cui sopra.

Si prega di qualcuno potrebbe offrire una guida su come ottenere installato e funzionante?

+0

provare a eseguire "infermiere medico" e controllare se ci sono errori. In tal caso, segui le istruzioni e riprova. – michniewicz

+0

Hai installato le dipendenze di gem? https://github.com/brianmario/mysql2#general-instructions – lcguida

+0

@ValAsensio, non sono d'accordo con te, penso che dovresti sempre provare a utilizzare il tuo db di produzione in sviluppo, se possibile. Non uso mai sqlite in fase di sviluppo, né qualcuno con cui lavoro. – niels

risposta

3

Il log di errore dice:

ld: library not found for -lssl 

Quindi, è necessario installare libssl:

brew install openssl 

Speranza che aiuta.

+0

Grazie per avermi indicato nella giusta direzione. Sto ottenendo fastidiosamente un nuovo errore: 'Errore: nessuna formula disponibile per libssl'. – zenvelope

+0

Oh, mi dispiace per aver sbagliato a digitare il suo nome. – mudasobwa

3

Grazie a @mudasobwa per avermi indicato nella giusta direzione. Si scopre che l'errore è stato causato da un file openssl non collegato, quindi in esecuzione:

brew reinstall openssl && brew link openssl --force 

Risolto il problema. Ho trovato la soluzione qui: OpenSSL, RVM, Brew, conflicting error

44

Per chiunque ancora sperimentando il problema:

Quando si installa OpenSSL tramite birra, si dovrebbe ottenere il seguente messaggio:

Apple has deprecated use of OpenSSL in favor of its own TLS and crypto libraries

Generally there are no consequences of this for you. If you build your own software and it requires this formula, you'll need to add to your build variables:

LDFLAGS: -L/usr/local/opt/openssl/lib
CPPFLAGS: -I/usr/local/opt/openssl/include
PKG_CONFIG_PATH: /usr/local/opt/openssl/lib/pkgconfig

È possibile impostare queste costruiscono bandiere (per l'applicazione locale) eseguendo quanto segue:

bundle config --local build.mysql2 "--with-ldflags=-L/usr/local/opt/openssl/lib --with-cppflags=-I/usr/local/opt/openssl/include" 

Questo ha funzionato per me.

Vedere bundler's documentation per ulteriori informazioni.

+17

Se si desidera utilizzare 'gem install', i seguenti lavori: ' gem install mysql2 -v '0.3.21' - --with-ldflags = -L/usr/local/opt/openssl/lib - with-cppflags = -I/usr/local/opt/openssl/include' – niels

+0

^^^ @niels che dovrebbe essere la risposta ... Alessandro non funziona su Sierra ("Attenzione: Rifiutarsi di collegare: aprire ssl ... "-> qualcosa a che fare con il deprecato sistema di openssl) – the12

+0

@ the12 la soluzione di niels è per' 'gem install'', il mio è per' 'bundle install''. Quale problema stai riscontrando esattamente, puoi pubblicare l'errore? La soluzione che ho postato funziona ancora per me. –

26

La soluzione per me era installare Xcode Command Line Tools.

Ho recentemente aggiornato Xcode tramite il Mac App Store e, ogni volta che lo faccio, ho scoperto che devo reinstallare di nuovo gli strumenti della riga di comando.

xcode-select --install 
+0

Questo mi ha aiutato. – racl101

+0

grazie !!!!!!! – susemi99

Problemi correlati