Ruby 1.9.3
La partie de Gemfile
#...............
gem "pony"
gem "bcrypt-Ruby", :require => "bcrypt"
gem "nokogiri"
#..................
Quand j'essaye d'installer des gems, j'obtiens une erreur
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.
Alors je fais ça
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
et obtenir une erreur aussi.
Qu'est-ce que j'ai raté?
Il y a des questions similaires:
Habituellement, la solution est la suivante:
Sudo apt-get installez Ruby-dev
Ou, si cela ne fonctionne pas, selon votre version de Ruby, exécutez quelque chose comme:
Sudo apt-get installer Ruby1.9.1-dev
Devrait résoudre votre problème.
Ne fonctionne toujours pas? Essayez ce qui suit après avoir installé Ruby-dev:
Sudo apt-get install marque
J'ai eu le même problème en essayant d'installer jquery-Rails. Le correctif était
Sudo apt-get install zlibc zlib1g zlib1g-dev
J'ai trouvé que je devais installer une autre version de Ruby. Donc exécuter la commande
$ Sudo apt-get install Ruby1.9.1-dev
puis essayez d'installer l'extension
Si vous rencontrez des problèmes où il vous dit que vous n'avez pas g ++, vous pouvez exécuter la commande suivante pour l'installer.
$ Sudo apt-get install g++
Ruby-dev
est installémake
est installégem install pg
, vous devrez également installer la bibliothèque lib libpq-dev
(Sudo apt-get install libpq-dev
).Au cas où quelqu'un aurait ce problème à l'avenir, j'utilise un Mac et je dois installer les outils de ligne de commande à l'aide de 'xcode-select --install'
Cela aide également à s'assurer que libmysqlclient-dev est installé (Ubuntu 14.04)
Sur Mac, cela fonctionne pour moi:
CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2
Après une recherche de solution, il s'avère que le paquetage -dev est nécessaire, pas seulement Ruby1.8. Donc, si vous avez Ruby1.9.1 faire
Sudo apt-get install Ruby1.9.1-dev
ou pour installer la version générique de Ruby, utilisez (selon le commentaire @lamplightdev):
Sudo apt-get install Ruby-dev
devrait le réparer.
Essayez de localiser mkmf pour voir si le fichier est réellement là.
Pour WSL (Windows Subsystem for Linux), vous devez installer le package build-essential
:
Sudo apt install build-essential