2013-09-23 15 views
9

Sto cercando di incorporare bcrypt-ruby, v. 3.0.1. Entro la gemma nel mio file gemma come segue:Perché il bcrypt ruby ​​gem non verrà installato correttamente?

gem 'bcrypt-ruby', '3.0.1' 

E io poi vado al terminale ed eseguire:

bundle install 

ottengo la seguente risposta:

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. 

    /usr/local/rvm/rubies/ruby-1.9.3-p392/bin/ruby extconf.rb 
creating Makefile 

make 
compiling bcrypt_ext.c 
make: gcc-4.2: No such file or directory 
make: *** [bcrypt_ext.o] Error 1 


Gem files will remain installed in /Users/philip7899/.bundler/tmp/2186/gems/bcrypt-ruby-3.0.1 for inspection. 
Results logged to /Users/philip7899/.bundler/tmp/2186/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out 
An error occurred while installing bcrypt-ruby (3.0.1), and Bundler cannot continue. 
Make sure that `gem install bcrypt-ruby -v '3.0.1'` succeeds before bundling. 

Sono estremamente nuovo sia a Ruby che a Rails e non ha idea di come risolvere questo problema. Ho visto altre pagine StackOverflow con domande simili ma nessuna è stata in grado di aiutarmi. Recentemente ho aggiornato a Mountain Lion e mi è stato detto che potrebbe essere un problema. Mi è stato detto di usare RVM per disinstallare e quindi reinstallare Ruby. L'ho provato e non ha funzionato.

Per favore aiuto. Grazie.

+0

Potete per favore includere i contenuti di '/ Users/philip7899/.bundler/tmp/2186/gemme/bcrypt-ruby-3.0.1/ext/RM/gem_make.out'? –

risposta

4

Provare a rimuovere ,'3.0.1' o provare come questo gem "bcrypt", "~> 3.1.1"

Speranza che aiuta.

caso contrario, dal console provare a eseguire gem install bcrypt

+0

Grazie, ho provato tutti quanti ma non ha funzionato. – Philip7899

+0

Quindi posso inoltrarti [qui] (http://stackoverflow.com/questions/6119153/why-do-i-get-a-bcrypt-ruby-gem-install-error). – Phil

+0

La combinazione della tua risposta più il link che mi hai inviato (che avevo provato prima) ha funzionato! Grazie! – Philip7899

-2

Le gemme con estensioni scritte in C, come bcrypt, non vengono sempre compilate su diverse versioni di piattaforme/rubini. Potresti cercare un'alternativa puramente rubino a bcrypt ed evitare possibili problemi con le estensioni C del tutto. Puoi anche provare una versione diversa della gemma e vedere se si compila sul tuo sistema.

+0

Grazie, ho bisogno di usare questa versione anche perché il tutorial che ho (un enorme libro che ho a metà) usa questo e io non sono abbastanza avanzato per andare fuori libro. – Philip7899

+0

Quale sistema operativo stai utilizzando? Ho ottenuto i migliori risultati per le estensioni C usando la risonanza magnetica su un sistema operativo simile a Unix. –

+0

Sto usando OSX Mountain Lion – Philip7899

2

Penso che sia un problema di aggiornamento di Xcode.

La mia soluzione:

brew install apple-gcc42 
sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2 

e funziona

4

In realtà un semplice:

gem install bundler 
gem install bcrypt-ruby 

e poi:

bundle update bcrypt-ruby 
or bundle update bcrypt 

avrei fatto il trucco.

È lo stesso modo in cui si aggiornano i binari. Se vuoi essere sicuro di poter specificare anche l'ultimo bcrypt-ruby nel tuo Gemfile. Ho appena fatto questo una decina di minuti fa, quindi so che funziona a partire dalla data di questo post ... stavo usando rubino 1.9.3 p484

+0

'gem install bundler' ha funzionato per me. Grazie! @ mystic-cola – Zakaria

0
  1. aggiungere la gemma necessario per Gemfile
  2. aggiungere questa riga al vostro file di configurazione se il percorso remoto per bundle install ha spazi: .bundle \ config:

BUNDLE_LOCAL__BCRYPT: C: \ RailsInstaller \ Ruby2.1.0 \ lib \ rubino \ gemme \ 2.1.0 \ \ gemme bcrypt-3.1 .10 \ lib

  1. fascio run installare
26

Nelle versioni recenti bcrypt-ruby sembra utilizzare la libreria GMP.

Così, su Linux qualcosa come questo dovrebbe aiutare (comando per Ubuntu 14.04):

sudo aptitude install libgmp-dev 
+3

'sudo apt-get install libgmp-dev' ha funzionato per me – KaizenCodes

+0

Grazie a @Envek, mi hai salvato un sacco di tempo. –

2

sono riuscito a risolvere il mio problema con l'installazione Bcrypt 3.1.11 gemma che stava venendo a mancare con:

linking shared-object bcrypt_ext.bundle 
ld: library not found for -lgmp 
clang: error: linker command failed with exit code 1 (use -v to see invocation) 
make: *** [bcrypt_ext.bundle] Error 1 

make failed, exit code 2 

Gem files will remain installed in /Users/adrian/.rvm/gems/ruby-2.1.6/gems/bcrypt-3.1.11 for inspection. 
Results logged to /Users/adrian/.rvm/gems/ruby-2.1.6/extensions/x86_64-darwin-14/2.1.0/bcrypt-3.1.11/gem_make.out 

Il problema era il libgmp non è stato trovato. In primo luogo, installarlo tramite birra:

brew install gmp 

successiva, in modo che gcc troveranno le librerie impostando la variabile LIBRARY_PATH ambiente:

export LIBRARY_PATH=/usr/local/lib 

e l'installazione:

gem install bcrypt 
+0

Ho provato così tante cose per ottenere questo per avere successo. Esportare il percorso della libreria l'ha risolto per me. Grazie! – BananaNeil

0

Questa è la soluzione semplice che ha funzionato per me:

Testato su mac:

Verificare che gem 'bcrypt', '3.1.11' sia nel file gemma quindi eseguire xcode-select --install. Run bundle install

Questo è tutto.

Best of fortune

Problemi correlati