Не удалось установить gem-не удалось построить собственное расширение gem - не удается загрузить такой файл-mkmf (LoadError)



Ruby 1.9.3



часть Gemfile



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


когда я пытаюсь установить камни, я получаю сообщение об ошибке



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.


тогда я делаю это



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


и получение ошибки, а также.



что я пропустил?

768   8  

8 ответов:

есть похожие вопросы:

Обычно решение таково:

sudo apt-get install ruby-dev

или, если это не работает, в зависимости от вашей версии ruby запустите что-то вроде:

sudo apt-get install ruby1.9. 1-dev

должен решить вашу проблему.


все еще не работает? Попробуйте выполнить следующие действия после установки ruby-dev:

sudo apt-get install make

У меня была такая же проблема, пытаясь установить jQuery-rails. Исправление было

sudo apt-get install zlibc zlib1g zlib1g-dev

я обнаружил, что мне нужно установить другую версию ruby. Поэтому запускаем команду

$ sudo apt-get install ruby1.9.1-dev

а затем попытаться установить расширение

Если вы столкнулись с проблемами, где он говорит вам, что у вас нет g++ вы можете запустить следующую команду, чтобы установить его

$ sudo apt-get install g++
  1. убедится ruby-dev установлен
  2. убедится make установлен
  3. если вы все еще получаете сообщение об ошибке, найдите предлагаемые пакеты. Если вы пытаетесь установить что-то вроде gem install pg вам также нужно будет установить lib libpq-dev (sudo apt-get install libpq-dev).

в случае, если кто-то в будущем имел эту проблему, я использую Mac и просто должен был установить инструменты командной строки с помощью "xcode-select --install"

Это также помогает обеспечить libmysqlclient-dev установлен (Ubuntu 14.04)

в Mac, для меня это работает:

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

после некоторого поиска решения, оказывается, что пакет-dev необходим, а не только ruby1.8. Так что если у вас есть ruby1. 9. 1 делать

sudo apt-get install ruby1.9.1-dev

или для установки общей версии ruby используйте (согласно комментарию @lamplightdev):

sudo apt-get install ruby-dev

должен это исправить.

попробуйте найти mkmf, чтобы увидеть, если файл на самом деле есть.

Comments

    Ничего не найдено.