提问



我试图使用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

最佳参考


在搜索了一些解决方案之后,事实证明需要-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


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


我还需要build-essential安装:


sudo apt-get install build-essential

其它参考3


问题仍然是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


你有没有尝试过:


sudo apt-get install ruby1.8-dev

其它参考5


我在安装捆绑时遇到了类似的错误


sudo apt-get install ruby-dev


对我很有用并解决问题
薄荷16 ruby​​1.9.3

其它参考6


我觉得有点晚了但是


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


在fedora为我工作。


http://nokogiri.org/tutorials/installing_nokogiri.html[19]

其它参考7


你有Ruby 1.8所以你需要升级到至少1.9才能使它工作。


若然,请检查如何安装特定版本的红宝石宝石?


如果这没有帮助,那么再次重新安装ruby-dev

其它参考8


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


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


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


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