`require':没有要加载的文件 - mkmf(LoadError)

时间:2011-10-04 09:39:10

标签: ruby-on-rails ubuntu

我试图使用ruby1.9.1在Ubuntu Natty Narwhal 11.04上安装rails。

我使用包含dev包的apt-get install ruby1.9.1-full安装了ruby。我用Google搜索了错误,所有人都建议我安装我已经拥有的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

10 个答案:

答案 0 :(得分:975)

在搜索了一些解决方案之后,事实证明需要-dev个包,而不仅仅是ruby1.8。所以如果你ruby1.9.1做了

sudo apt-get install ruby1.9.1-dev

或安装通用ruby版本,使用(根据@lamplightdev评论):

sudo apt-get install ruby-dev

应该修复它。

尝试locate mkmf查看文件是否确实存在。

答案 1 :(得分:185)

这个答案对我有用。在上面的评论中,但应该得到合适的地方作为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

答案 2 :(得分:37)

我还需要build-essential安装:

sudo apt-get install build-essential

答案 3 :(得分: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 ...

答案 4 :(得分:17)

你试过了吗?

sudo apt-get install ruby1.8-dev

答案 5 :(得分:10)

安装捆绑包时出现类似错误

sudo apt-get install ruby-dev

非常适合我并解决问题 薄荷16 ruby​​1.9.3

答案 6 :(得分:2)

我觉得有点晚了但是

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

在fedora上为我工作。

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

答案 7 :(得分:1)

你有Ruby 1.8,所以你需要升级到至少1.9以使其正常工作。

如果是,请检查How to install a specific version of a ruby gem?

如果这样做无效,请重新安装ruby-dev

答案 8 :(得分:0)

您可以使用RVM(Ruby版本管理器)来帮助您管理计算机上所有版本的ruby,这对您的开发非常有用(当迁移到不稳定版本到稳定版本时)

或者对于Linux(ubuntu)来说 sudo apt-get install ruby1.8-dev

然后sudo gem install rails验证它是rails -v它将在轨道上显示版本

之后,您可以安装捆绑包(开发所需的宝石)

答案 9 :(得分:0)

Ruby版本:2.7.1 宝石版本:3.1.3

您需要检查无法安装的扩展,并找到原因。

阅读安装错误下显示的 mkmf.log 文件:“要查看此扩展为何无法编译,请检查mkmf.log,可在此处找到” ,也许缺少一个lib(有时是iconv),您必须安装它。

您也可以使用包管理器(apt,yum,pacman ...)搜索扩展名。

(个人情况)Arch Linux-> nokogiri

gem install rails

给我看

要查看此扩展为何无法编译,请检查mkmf.log 可以在这里找到: /home/user/.gem/ruby/2.7.0/extensions/x86_64-linux/2.7.0/ nokogiri -1.10.9 / mkmf.log

转到:https://aur.archlinux.org/packages/ruby-nokogiri/

  1. 确保已安装所有依赖项
  2. 确保已安装make
  3. git clone包裹
  4. cd打包
  5. makepkg包裹

希望有帮助!