上下文
最近,我参加了一个软件开发项目,我希望使用文本标记来编写技术文档(适合在代码存储库中与代码一起跟踪)。由于项目已经在使用雷德明,所以我希望使用纺织品,从而避免其他开发人员学习另一种标记语言。我知道实现有所不同,所以本着圆柱形的精神,我想使用RedCloth,它是由Redmine内部使用的。
我们正在开发并部署到多个OSes,包括Windows。为了方便,以及非技术的、非技术的、只使用的非开发者用户,我希望能够使用一个独立的工具来编译这些技术文档,最好是作为一个单一安装程序来部署。
我是鲁比100%的新手,所以请耐心点。我不打算为这个项目在Ruby中开发,我只想在Windows上安装一个工作,然后再处理剩下的部分。
需要帮助
我不开发Rails应用程序,这是用于桌面安装的,所以不要告诉我“只需在Linux上使用它”。我已经安装了DevKit,它安装了make、g++等,并被./configure脚本接受为“正常的开发环境”。
我有一个简单的问题,我正在寻找一个简单的解决方案。谷歌搜索这个问题已经向曾被报道过展示了这个问题,我只找到了切换到Linux的建议,有人告诉我它“就像广告中所说的那样有效”。
我想要一些实际的帮助,请,即使它只是一个可能的故障点清单的形式,我可以检查。
环境
此问题发生在Windows 7,64位计算机上,以前没有安装Ruby的历史.我现在还没有32位的权限。
Linux安装并不是一个问题。
问题
我刚刚下载了用于Windows的Ruby安装程序 Ruby 1.9.2-p136和Ruby开发工具包 DevKit-tdm-32-4.5.1-20101214-1400-sfx.exe,这是编译RedCloth所必需的。这两个版本都是目前推荐的在Windows上部署Ruby的版本(至少我已经读过了)。
我在听指示,到目前为止还不错。Ruby和DevKit都安装在默认路径中(文件夹名中没有空格)。config.yml正确地指向新安装,而不是其他任何东西。ruby dk.rb install运行良好。现在我可以在Ruby文件夹中看到一个名为lib/ruby/site_ruby/devkit.rb的文件,即编译前钩子在编译Ruby时设置到DevKit的路径。代码指向正确的文件夹,就像预期的那样。
当我使用推荐的gem install rdiscount --platform=ruby命令测试安装时,我得到如下信息:
C:\DevKit>gem install rdiscount --platform=ruby
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing rdiscount:
ERROR: Failed to build gem native extension.
"C:/Ruby192/bin/ruby.exe" extconf.rb这有点让人困惑,所以我开始四处看看,我可以找到文件lib/ruby/gems/1.9.1/gems/rdiscount-1.6.5/ext/extconf.rb文件。在该文件夹中通过ruby extconf.rb运行它将给我:
Could not create Makefile due to some reason, probably lack of necessary libraries
and/or headers. Check the mkmf.log file for more details. You may need
configuration options.
Provided configuration options:
--with-opt-dir
--without-opt-dir
--with-opt-include
--without-opt-include=${opt-dir}/include
--with-opt-lib
--without-opt-lib=${opt-dir}/lib
--with-make-prog
--without-make-prog
--srcdir=.
--curdir
--ruby=c:/Ruby192/bin/ruby
--with-rdiscount-dir
--without-rdiscount-dir
--with-rdiscount-include
--without-rdiscount-include=${rdiscount-dir}/include
--with-rdiscount-lib
--without-rdiscount-lib=${rdiscount-dir}/lib
c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:678:in `flush': Broken pipe (Errno::EPIPE)
from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:678:in `message'
from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:690:in `checking_for'
from c:/Ruby192/lib/ruby/1.9.1/mkmf.rb:796:in `have_func'
from extconf.rb:5:in `<main>'我在某个地方(现在找不到指向它的链接)看到rdiscount没有在Windows上编译,所以我按照指示从源代码存储库(git clone git://github.com/jgarber/redcloth.git)中获取了RedCloth的源代码。
当我从给定的目录尝试rake install时,我会得到缺少gems的错误(diff-lcs和其他),所以我使用gem install diff-lcs --version '=...'安装它们,然后就可以开始真正的安装了。
当我到达那里时,rake失败了以下消息:
(in c:/Users/carona/Desktop/redcloth)
rake aborted!
No such file or directory - gem build c:/Users/carona/Desktop/redcloth/redcloth.gemspec 2>&1
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.8/lib/bundler/gem_helper.rb:138:in ``'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.8/lib/bundler/gem_helper.rb:138:in `block in sh_with_code'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.8/lib/bundler/gem_helper.rb:137:in `chdir'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.8/lib/bundler/gem_helper.rb:137:in `sh_with_code'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.8/lib/bundler/gem_helper.rb:129:in `sh'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.8/lib/bundler/gem_helper.rb:42:in `build_gem'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.8/lib/bundler/gem_helper.rb:53:in `install_gem'
c:/Ruby192/lib/ruby/gems/1.9.1/gems/bundler-1.0.8/lib/bundler/gem_helper.rb:31:in `block in install'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:634:in `call'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:634:in `block in execute'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:629:in `each'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:629:in `execute'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:595:in `block in invoke_with_call_chain'
c:/Ruby192/lib/ruby/1.9.1/monitor.rb:201:in `mon_synchronize'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:588:in `invoke_with_call_chain'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:581:in `invoke'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2041:in `invoke_task'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `block (2 levels) in top_level'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `each'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2019:in `block in top_level'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2058:in `standard_exception_handling'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:2013:in `top_level'
c:/Ruby192/lib/ruby/1.9.1/rake.rb:1992:in `run'
c:/Ruby192/bin/rake:31:in `<main>'但是,c:/Users/carona/Desktop/redcloth/redcloth.gemspec文件实际上是存在的,所以我不知道如何处理。
发布于 2011-01-20 14:52:56
我把问题归结为两件事,第二件是我的“错误”。
gem install RedCloth,这导致一些路径被转换为/C/...,而不是Makefile中的C:/。显然,g++和朋友无法打开任何给定的文件。通过运行ruby和gem从cmd.exe重新安装已经解决了所有的问题。我现在有一个快乐的安装。我还向RubyInstaller团队报告了第一期。
https://stackoverflow.com/questions/4740397
复制相似问题