Não é possível instalar o gem – Falha ao criar a extensão nativa do gem – não é possível carregar esse arquivo – mkmf (LoadError)

Ruby 1.9.3

A parte do Gemfile

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

Quando estou tentando instalar gems, recebo um erro

 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 `' 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. 

Então eu estou fazendo isso

 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 `' 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 recebendo um erro também.

O que eu perdi?

Existem perguntas semelhantes:

  • `require ‘: nenhum arquivo para carregar – mkmf (LoadError)
  • Falha ao criar a extensão nativa do gem (mkmf (LoadError)) – Ubuntu 12.04

Normalmente, a solução é:

sudo apt-get instala ruby-dev

Ou, se isso não funcionar, dependendo da versão do ruby , execute algo como:

sudo apt-get install ruby1.9.1-dev

Deve resolver o seu problema.


Ainda não funciona? Tente o seguinte depois de instalar o ruby-dev:

sudo apt-get install make

Eu tive o mesmo problema ao tentar instalar o jquery-rails. A correção foi

 sudo apt-get install zlibc zlib1g zlib1g-dev 

Eu descobri que precisava instalar outra versão do ruby. Então, executando o comando

 $ sudo apt-get install ruby1.9.1-dev 

e tente instalar a extensão

Se você encontrar problemas nos quais está dizendo que você não tem o g ++, você pode executar o seguinte comando para instalá-lo

 $ sudo apt-get install g++ 
  1. Certifique-se de que o ruby-dev esteja instalado
  2. Certifique-se de que o make esteja instalado
  3. Se você ainda receber o erro, procure por pacotes sugeridos. Se você está tentando instalar algo como gem install pg você também precisará instalar o lib libpq-dev ( sudo apt-get install libpq-dev ).

No caso de alguém no futuro ter esse problema, eu estou usando um Mac e só tive que instalar as ferramentas de linha de comando usando ‘xcode-select –install’

Também ajuda a garantir que o libmysqlclient-dev esteja instalado (Ubuntu 14.04)

No Mac, para mim isso funciona:

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

Depois de procurar por uma solução, o pacote -dev é necessário, não apenas o ruby1.8. Então, se você tem ruby1.9.1 fazendo

 sudo apt-get install ruby1.9.1-dev 

ou para instalar a versão genérica do ruby, use (como por comentário @lamplightdev):

 sudo apt-get install ruby-dev 

deve consertar isso.

Tente localizar o mkmf para ver se o arquivo está realmente lá.

Intereting Posts