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)
- Asegúrate de que
ruby-dev
esté instalado - Asegúrate de que
make
esté instalado - Si aún obtiene el error, busque los paquetes sugeridos. Si está tratando de instalar algo como
gem install pg
, también necesitará instalar liblibpq-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''
Hay preguntas similares:
- `require '': no se carga ese archivo - mkmf (LoadError)
- Error al construir la extensión nativa de la gema (mkmf (LoadError)) - Ubuntu 12.04
Por lo general, la solución es:
sudo apt-get install ruby-dev
O, si eso no funciona, según su versión de ruby , ejecute algo como:
sudo apt-get install ruby1.9.1-dev
Debería arreglar tu problema
¿Sigue sin funcionar? Pruebe lo siguiente después de instalar ruby-dev:
sudo apt-get install make
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