Impossible d'installer gem-échec de la construction de l'extension native gem - impossible de charger un tel fichier - mkmf (LoadError)

Ruby 1.9.3

la partie de Gemfile

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

quand j'essaie d'installer des gemmes, 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 que je suis en train de faire cette

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 d'obtenir une erreur ainsi.

Qu'est-ce que j'ai manqué?

149
demandé sur MrYoshiji 2012-12-07 21:08:19

8 réponses

il y a des questions similaires:

habituellement, la solution est:

sudo apt-get install ruby-dev

ou, si cette ne fonctionne pas, selon votre version ruby , exécuter quelque chose comme:

sudo apt-get install ruby1.9.1-dev

devrait régler votre problème.


toujours pas de travail? Essayez ce qui suit après avoir installé ruby-dev:

sudo apt-get install make

385
répondu MrYoshiji 2017-09-29 13:05:18

j'ai eu le même problème en essayant d'installer jquery-rails. Le fix était

sudo apt-get install zlibc zlib1g zlib1g-dev
4
répondu B2Pi 2015-11-11 04:31:51

j'ai trouvé que j'avais besoin d'installer une autre version de ruby. Donc, exécuter la commande

$ sudo apt-get install ruby1.9.1-dev

et ensuite essayer d'installer l'extension

si vous rencontrez des problèmes où il vous dit que vous n'avez pas g++ , vous pouvez lancer la commande suivante pour l'installer

$ sudo apt-get install g++
4
répondu hmjha 2015-11-19 09:18:44
  1. assurez-vous que ruby-dev est installé
  2. s'assurer que make est installé
  3. si vous avez toujours l'erreur, cherchez les paquets suggérés. Si vous essayez d'installer quelque chose comme gem install pg vous aurez aussi besoin d'installer la lib libpq-dev ( sudo apt-get install libpq-dev ).
2
répondu hazmat 2015-05-29 05:21:11

dans le cas où quelqu'un dans le futur avait ce problème, j'utilise un Mac et juste eu à installer les outils en ligne de commande en utilisant 'xcode-select -- install'

2
répondu NateW 2015-07-11 22:32:01

Il aide également à assurer libmysqlclient-dev est installé (Ubuntu 14.04)

1
répondu KLaw 2015-12-10 21:45:02

Dans Mac, pour moi cela fonctionne:

CONFIGURE_OPTS="--enable-shared" rbenv install 2.2.2
0
répondu rubyu2 2016-08-19 08:24:51

après un peu de recherche d'une solution, il s'avère que le paquet-dev est nécessaire, pas seulement ruby1.8. Donc si vous avez ruby1.9.1 doing

sudo apt-get install ruby1.9.1-dev

ou pour installer la version ruby Générique, utilisez (selon le commentaire de @lamplightdev):

sudo apt-get install ruby-dev

devrait le réparer.

Essayez de localiser mkmf pour voir si le fichier est réellement là.

0
répondu Rahi.Shah 2017-08-01 10:20:49