安装RedCloth-4.2.9安装Linux时无法构建gem native扩展

我想在我的电脑上安装Octopress 。 我试着这样做

Octopress文件。

当我跑

 bundle install 

我收到了错误消息

 An error occured while installing RedCloth (4.2.9), and Bundler cannot continue. Make sure that `gem install RedCloth -v '4.2.9'` succeeds before bundling. 

所以,我跑了

 sudo gem install RedCloth -v '4.2.9' 

然后,我又收到一条错误消息:

 ERROR: Error installing RedCloth: 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:1:in `' 

我没有学过任何关于ruby的知识。

您可能已经升级到Mountain Lion并且还没有使用新的开发包重建您的ruby-1.9.2安装。

 rvm --force install 1.9.2 gem install bundle --no-ri --no-rdoc bundle install 

如果您没有正确安装Mountain Lion开发包,请使用ThoughtBot说明。

我的ubuntu 12.04解决方案是安装ruby1.9.1完整版,可以解决这个问题。

 sudo apt-get install ruby1.9.1-full 

你可以执行命令:

 sudo update-alternatives --config ruby 

选择已安装的altiernative ruby​​。 然后,执行以下命令来完成octopress部署:

 git clone https://github.com/erizhang/octopress.git octopress cd octopress/ sudo gem install bundler sudo gem install RedCloth -v '4.2.9' bundle install rake install 

您可以在octopress部署指南页面中找到以下命令:

 rake setup_github_pages sudo rake setup_github_pages sudo rake generate sudo rake deploy 

希望它对你有所帮助,谢谢

我也安装了Octopress,并且遇到了和你一样的问题。 检查mkmf.log文件后,我发现没有找到gcc-4.2。 我甚至用命令行工具安装了xcode。 当我制作这样的符号链接时它起作用了:

 $ sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 $ bundle install 

我通过运行修复了这个问题

 sudo apt-get install ruby-dev 

如本博文中所述。

对于Ubuntu 14.04,只需执行以下操作:

 sudo apt-get install ruby1.9.3 

应该也适用于13.10和13.04。 (未测试)

它表示您没有使用rvm来管理ruby安装。 我认为最好是尝试rvm,这是一个非常好的指南,你可以停止而不安装rails: ruby with rvm

然后简单

 $gem install RedCloth 

不受管理的ruby是一种痛苦,我尽量避免它们。

我的Ubuntu 14.04.1 LTS上没有任何答案。 升级到ruby 2.0为我解决了这个问题:

 sudo apt-get install ruby2.0 ruby2.0-dev sudo ln -s /usr/bin/ruby2.0 /usr/bin/ruby sudo ln -s /usr/bin/gem2.0 /usr/bin/gem sudo gem install bundler 

确保您还安装了build-essential软件包。 你可以查看使用

dpkg -l | grep build-essential

或者只是安装它而不检查

sudo apt-get install build-essential

对于我在Ubuntu 14.04.1 LTS上,在确保安装了build-essential之后, bundle install命令在Ruby 1.9.3中也能正常工作/构建。