`require ': нет такого файла для загрузки - mkmf (LoadError)

541

Я пытался установить рельсы на Ubuntu Natty Narwhal 11.04, используя ruby1.9.1.

Я установил ruby ​​с помощью apt-get install ruby1.9.1-full, который содержит пакет dev. Я ошибся в googled, и все предложили установить 1.9.1-dev, который у меня уже есть.

Building native extensions.  This could take a while...
ERROR:  Error installing rails:
    ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.8 extconf.rb
extconf.rb:36:in `require': no such file to load -- mkmf (LoadError)
    from extconf.rb:36


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/bcrypt-ruby-3.0.1/ext/mri/gem_make.out
Теги:

9 ответов

1012
Лучший ответ

После некоторого поиска решения получается пакет -dev, а не только ruby1.8. Итак, если у вас ruby1.9.1 выполняется

sudo apt-get install ruby1.9.1-dev

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

sudo apt-get install ruby-dev

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

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

  • 218
    следующее установит пакет dev, соответствующий вашей текущей установленной версии ruby: sudo apt-get install ruby-dev
  • 0
    да, работал на меня. запустите ruby -v, чтобы найти версию, если вы хотите установить только текущую версию ruby.
Показать ещё 3 комментария
193

Это ответ, который сработал у меня. Был в комментариях выше, но заслуживает своего законного места в качестве ответа для ubuntu 12.04 ruby ​​1.8.7

sudo apt-get install ruby-dev
# if above doesnt work make sure you have build essential
sudo apt-get install build-essential
  • 0
    Стоит также отметить, что если вы хотите использовать центр программного обеспечения Ubuntu, есть дополнение для ruby-dev, которое вы можете выбрать для «Заголовочные файлы для компиляции модулей расширения».
  • 0
    Я использовал sudo apt-get install ruby1.9.1-dev с ruby 1.9.3 до того, как увидел комментарий или этот ответ, и это позволило мне построить расширение rails. Не уверен, что несоответствие версий, подобных этой, вызовет у меня какую-то головную боль позже, но следует отметить, что рельсы установлены правильно, с небольшим изменением официально принятого ответа.
Показать ещё 1 комментарий
34

Мне также понадобилась встроенная технология:

sudo apt-get install build-essential
  • 0
    Это был билет прямо здесь ... Я думаю, мне пришлось установить ruby-dev, но он не работал, пока я не установил build-essential. миллион спасибо
30

Проблема по-прежнему рекурсивна на Ubuntu 13/04/13.10/14.04

и

sudo apt-get install ruby1.9.1-dev

разработал у меня все в порядке. Итак, если вы используете Ubuntu 13.04/13.10/14.04, то использование этого действительно пригодится.

Это работает, даже если версия ruby ​​равна 1.9.3. Это связано с тем, что в репозитории нет ruby1.9.3-dev...

  • 1
    Да, этот работает и для меня на ruby1.9.3. В хранилище ubuntu для ruby1.9.3-dev не было пакета.
  • 1
    На Ubuntu 14.04, а также ...
Показать ещё 1 комментарий
17

Вы пробовали:

sudo apt-get install ruby1.8-dev
  • 3
    Я использую 1.9.1, зачем мне устанавливать ruby1.8-dev?
  • 3
    ваша ошибка относится к ruby1.8
Показать ещё 2 комментария
10

Я получил аналогичную ошибку при установке пакета

sudo apt-get install ruby-dev

Отлично работает для меня и решает проблему Монетный двор 16 ruby1.9.3

2

Я думаю, немного поздно, но

sudo yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel

работал у меня на Fedora.

http://nokogiri.org/tutorials/installing_nokogiri.html

1

У вас есть Ruby 1.8, поэтому вам нужно обновить его, по крайней мере до 1.9, чтобы он работал.

Если да, то проверьте Как установить определенную версию рубинового драгоценного камня?

Если это не поможет, повторите установку ruby-dev снова.

0

Вы можете использовать RVM (менеджер версий Ruby), который помогает управлять всеми версиями ruby ​​на вашем компьютере, что очень полезно для вас при разработке (при переносе на нестабильный выпуск на стабильный выпуск).

или для Linux (ubuntu) для sudo apt-get install ruby1.8-dev

затем sudo gem install rails, чтобы проверить, что это делает rails -v, он покажет версию на рельсах

после этого вы можете установить пакеты (необходимые драгоценные камни для разработки)

  • 0
    Вы все еще можете использовать RVM на Linux. Я делаю это (но все еще есть проблема этой ошибки mkmf при установке рельсов)
Сообщество Overcoder
Наверх
Меню