2

我最近开始使用 Joe Kutner 的书“使用 JRuby 部署”来探索 JRuby ,但是在尝试安装jruby-lint gem 时遇到了问题。下面是我尝试的输出,包括 Java、JRuby 和我的操作系统的版本号。

我不明白输出,尤其是为什么 nokogiri 不会安装为 jruby-lint 依赖项,而是会自行安装。虽然现在报告 jruby-lint gem 已正确安装,但它还没有提供要使用的jrlint可执行文件/脚本,我不知道从哪里开始。有任何想法吗?

C:\Dev\repos\twitalytics>jruby --version
jruby 1.7.3 (1.9.3p385) 2013-02-21 dac429b on Java HotSpot(TM) 64-Bit Server VM 1.7.0_21-b11 [Windows 7-amd64]

C:\Dev\repos\twitalytics>jruby -S gem install jruby-lint
Building native extensions.  This could take a while...
ERROR:  Error installing jruby-lint:
        ERROR: Failed to build gem native extension.

        C:/Dev/jruby-1.7.3/bin/jruby.exe extconf.rb
NotImplementedError: C extension support is not enabled. Pass -Xcext.enabled=true to JRuby or set JRUBY_OPTS or modify .jrubyrc to enable.

   (root) at C:/Dev/jruby-1.7.3/lib/ruby/shared/mkmf.rb:8
  require at org/jruby/RubyKernel.java:1027
   (root) at C:/Dev/jruby-1.7.3/lib/ruby/shared/rubygems/custom_require.rb:1
   (root) at extconf.rb:5


Gem files will remain installed in C:/Users/Owen/.gem/jruby/1.8/gems/nokogiri-1.6.0.rc1 for inspection.
Results logged to C:/Users/Owen/.gem/jruby/1.8/gems/nokogiri-1.6.0.rc1/ext/nokogiri/gem_make.out

C:\Dev\repos\twitalytics>set JRUBY_OPTS=--1.8
C:\Dev\jruby-1.7.3>jruby --version
jruby 1.7.3 (ruby-1.8.7p370) 2013-02-21 dac429b on Java HotSpot(TM) 64-Bit Server VM 1.7.0_21-b11 [Windows 7-amd64]

C:\Dev\repos\twitalytics>jruby -S gem install jruby-lint
ERROR:  Error installing jruby-lint:
        nokogiri requires Ruby version >= 1.9.2.

C:\Dev\repos\twitalytics>jruby -S gem install nokogiri
Fetching: nokogiri-1.5.9-java.gem (100%)
Successfully installed nokogiri-1.5.9-java
1 gem installed

C:\Dev\repos\twitalytics>jruby -S gem install jruby-lint
Fetching: jruby-lint-0.4.1.gem (100%)
Successfully installed jruby-lint-0.4.1
1 gem installed

C:\Dev\repos\twitalytics>jrlint
'jrlint' is not recognized as an internal or external command,
operable program or batch file.
4

4 回答 4

1

我遇到了一个非常相似的问题,也是在阅读这本书的时候。更新 Rubygems 为我解决了这个问题。也许尝试:

jruby -S gem update --system
于 2013-05-31T17:44:35.417 回答
0

在 Windows 上,这两种解决方案都不适合我。jruby -S gem install nokogiri 安装 nokogiri-1.6.0-java 如果我从https://github.com/jruby/jruby-lint下载 gem并自己构建它,它会使 jruby\lib\ruby\ 的 gem 文件夹为空gems\shared\gems\jruby-lint-0.4.1 它不会生成一个 bat 文件来在 /bin 目录中运行它。我认为这颗宝石还没有为 Windows 做好准备。难道是我试图将它安装在 BitNami 堆栈上?我还没有尝试过定期安装 JRuby。

于 2013-06-20T03:47:13.167 回答
0

有趣的是,它尝试安装 Nokogiri 的 Ruby(不是 JRuby)版本,因为它尝试安装 C 扩展。

我认为如果您安装 jruby-lint 所需的相同版本,即nokogiri-1.6.0.rc1,问题将得到解决。

于 2013-05-20T14:24:13.337 回答
0

如果更新 Rubygems 不起作用,请尝试:

gem install nokogiri

这将安装 nokogiri-1.6.0-java

再说一遍:

gem install jruby-lint

你可以走了。

于 2013-07-12T17:47:37.490 回答