ruby - Windows 上的独立 RedCloth

标签 ruby windows redcloth

语境
我最近参与了一个软件开发项目,我希望使用文本标记(适合在代码存储库中与代码一起跟踪)编写技术文档。因为项目已经在使用 Redmine , 我想用 Textile从而避免其他开发人员学习另一种标记语言。我知道实现有所不同,所以本着 POLS 的精神, 我想用 RedCloth ,由 Redmine 内部使用。
我们正在开发并部署到多个操作系统,包括 Windows。为方便起见,以及使用 Windows 的非技术、非开发人员用户 只有我希望能够使用独立工具编译所述技术文档,最好部署为 单个安装程序 .
我是 Ruby 的 100% 新手,所以请耐心等待。我不打算为这个项目用 Ruby 进行开发,我只想在 Windows 上进行有效的安装,我会从那里处理其余的。
把招工广告
我不是在开发 Rails 应用程序,这是用于桌面安装,所以不要告诉我“只在 Linux 上使用它”。我已经安装了 DevKit,它安装了 make , g++等,并被 ./configure 接受脚本作为“健全的开发环境”。
我有一个简单的问题,我正在寻找一个简单的解决方案。谷歌搜索此问题已向 has been reported before 显示此问题我只找到了切换到 Linux 的建议,人们告诉我它“就像宣传的那样”。
我想要一些实际的帮助,即使它只是我可以检查的可能故障点 list 的形式。
环境
此问题发生在没有 Ruby 安装历史的 Windows 7、64 位计算机上。我目前无法访问 32 位。
Linux 安装不是问题。
问题
我刚刚下载了 Ruby Installer for Windows Ruby 1.9.2-p136 ,以及 Ruby Development Kit 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 gems 时设置 DevKit 路径的编译预 Hook 。正如预期的那样,代码指向正确的文件夹。
当我使用推荐的 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从给定的目录中,我收到缺少 gem 的错误(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实际上确实存在,所以我不知道该怎么做。

最佳答案

我已经将问题归结为两件事,第二件事是我的“错误”。

  • 随 DevKit 4.5.1 分发的 MinGW 工具不适用于 Windows 7 64 位。他们似乎有一个旧版本的 MinGW 出现了这个问题。安装最新的 MinGW 工具并使用允许编译的工具。
  • 我最初使用 Git Bash 来运行 gem install RedCloth这导致一些路径被转换为 /C/...而不是 C:/在 Makefile 里面。显然,g++和 friend 无法打开任何给定的文件。运行 ruby 重新安装和 gem来自 cmd.exe已经解决了所有问题。

  • 我现在有一个快乐的安装。我还向 RubyInstaller 团队报告了第一个问题。

    关于ruby - Windows 上的独立 RedCloth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4740397/

    相关文章:

    ruby - 单分支哈希树

    ruby - 不能使用 has_secure_password,password_digest 错误

    ruby-on-rails - 为 Postgres 上的第二个项目创建一个新数据库

    windows - 是否可以使用 Go 编译器为其他操作系统分发可执行文件?

    c# - 相同的系统,相同的代码,不同的行为 : The request was aborted: Could not create SSL/TLS secure channel

    java - Windows 和 Ubuntu 之间的不同路径

    ruby - "in ` 需要 ': cannot load such file -- iconv (LoadError)"

    ruby-on-rails - ruby ,纺织品 : how to get plain text without tags and textile format

    ruby-on-rails - 用于在 Rails 应用程序中创建全功能博客的 Gem