rails password algoritmo ruby-on-rails ruby ubuntu gem bcrypt

ruby on rails - password - No se ha podido instalar la gema-No se pudo construir la extensión nativa de la gema-No se puede cargar ese archivo-mkmf(LoadError)



rails bcrypt (8)

  1. Asegúrate de que ruby-dev esté instalado
  2. Asegúrate de que make esté instalado
  3. Si aún obtiene el error, busque los paquetes sugeridos. Si está tratando de instalar algo como gem install pg , también necesitará instalar lib libpq-dev ( sudo apt-get install libpq-dev ).

Ruby 1.9.3

La parte de Gemfile

#............... gem "pony" gem "bcrypt-ruby", :require => "bcrypt" gem "nokogiri" #..................

Cuando intento instalar gemas, aparece un error

alex@ubuntu:~/$ bundle Fetching gem metadata from http://rubygems.org/......... Fetching gem metadata from http://rubygems.org/.. Enter your password to install the bundled RubyGems to your system: #####............................................................ Installing bcrypt-ruby (3.0.1) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'': cannot load such file -- mkmf (LoadError) from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'' from extconf.rb:36:in `<main>'' Gem files will remain installed in /home/alex/.bundler/tmp/5526/gems/bcrypt-ruby-3.0.1 for inspection. Results logged to /home/alex/.bundler/tmp/5526/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.

Entonces estoy haciendo esto

sudo gem install bcrypt-ruby -v ''3.0.1'' Building native extensions. This could take a while... ERROR: Error installing bcrypt-ruby: ERROR: Failed to build gem native extension. /usr/bin/ruby1.9.1 extconf.rb /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'': cannot load such file -- mkmf (LoadError) from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'' from extconf.rb:36:in `<main>'' Gem files will remain installed in /var/lib/gems/1.9.1/gems/bcrypt-ruby-3.0.1 for inspection. Results logged to /var/lib/gems/1.9.1/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out

y obteniendo un error también

¿Qué me perdí?


Descubrí que necesitaba instalar otra versión de ruby. Entonces ejecutando el comando

$ sudo apt-get install ruby1.9.1-dev

y luego intenta instalar la extensión

Si se encuentra con problemas donde le dice que no tiene g ++, puede ejecutar el siguiente comando para instalarlo

$ sudo apt-get install g++


Después de buscar una solución, resulta que se necesita el paquete -dev, no solo ruby1.8. Entonces, si tienes ruby1.9.1 haciendo

sudo apt-get install ruby1.9.1-dev

o para instalar la versión genérica de ruby, use (de acuerdo con el comentario de @lamplightdev):

sudo apt-get install ruby-dev

debería arreglarlo

Intenta localizar mkmf para ver si el archivo está realmente allí.


En Mac, para mí esto funciona:

CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2


En caso de que alguien en el futuro tuviera este problema, estoy usando una Mac y solo tuve que instalar las herramientas de línea de comandos usando ''xcode-select --install''



También ayuda a asegurar que libmysqlclient-dev esté instalado (Ubuntu 14.04)


Tuve el mismo problema al intentar instalar jquery-rails. La solución fue

sudo apt-get install zlibc zlib1g zlib1g-dev