ruby on rails Impossibile installare gem-Impossibile creare gem native extension-impossibile caricare tale file-mkmf(LoadError)




ruby-on-rails ubuntu (7)

Rubino 1.9.3

La parte di Gemfile

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

Quando cerco di installare le gemme, ottengo un errore

[email protected]:~/$ 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.

Allora lo sto facendo

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

e anche ottenere un errore.

Cosa mi sono perso?


Ho avuto lo stesso problema cercando di installare jquery-rails. La correzione era

sudo apt-get install zlibc zlib1g zlib1g-dev

In Mac, per me questo funziona:

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

Dopo aver cercato una soluzione, si scopre che il pacchetto -dev è necessario, non solo ruby1.8. Quindi se stai facendo ruby1.9.1

sudo apt-get install ruby1.9.1-dev

o per installare la versione generica di ruby, utilizzare (come per il commento @lamplightdev):

sudo apt-get install ruby-dev

dovrebbe ripararlo.

Prova a localizzare mkmf per vedere se il file è effettivamente lì.


Nel caso in cui qualcuno in futuro avesse questo problema, sto usando un Mac e ho appena dovuto installare gli strumenti della riga di comando usando 'xcode-select --install'


Ho scoperto che avevo bisogno di installare un'altra versione di ruby. Quindi, eseguendo il comando

$ sudo apt-get install ruby1.9.1-dev

e quindi tenta di installare l'estensione

Se ti imbatti in problemi in cui ti dice che non hai g ++ puoi eseguire il seguente comando per installarlo

$ sudo apt-get install g++


  1. Assicurarsi che sia installato ruby-dev
  2. Assicurati che make sia installato
  3. Se ricevi ancora l'errore, cerca i pacchetti suggeriti. Se stai cercando di installare qualcosa come gem install pg dovrai anche installare lib libpq-dev ( sudo apt-get install libpq-dev ).




bcrypt