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

我使用apt-get install ruby1.9.1-full安装ruby,其中包含了开发包。我谷歌了这个错误,所有人都建议我安装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

当前回答

我还需要build-essential安装:

sudo apt-get install build-essential

其他回答

我觉得有点晚了,但是

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

帮我做软呢帽。

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

这个答案对我很管用。在上面的评论中,但它值得作为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

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

或者Linux (ubuntu) Sudo apt-get安装ruby1.8-dev

然后sudo gem install rails来验证它。do rails -v它将显示rails上的版本

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

我还需要build-essential安装:

sudo apt-get install build-essential

在寻找了一些解决方案后,发现-dev包是需要的,而不仅仅是ruby1.8。如果你有ruby1.9.1

sudo apt-get install ruby1.9.1-dev

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

sudo apt-get install ruby-dev

应该把它修好。

尝试定位mkmf,看看文件是否确实在那里。