我正在尝试安装Stanford-Core-NLP gem,这是github上使用Ruby进行自然语言处理的主要项目之一。它为Stanford-Core-NLP pakage提供了Ruby绑定,用Java编写。当我尝试按照安装说明的第一步,即:
gem install stanford-core-nlp
我收到以下错误:
ERROR: Error installing stanford-core-nlp:
ERROR: Failed to build gem native extension.
/home/user/.rvm/rubies/ruby-1.9.2-p320/bin/ruby extconf.rb
*** extconf.rb failed ***
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=/home/user/.rvm/rubies/ruby-1.9.2-p320/bin/ruby
extconf.rb:53:in `<main>': JAVA_HOME is not set. (RuntimeError)
我正在运行Ruby 1.9.2,根据repo,它是gem测试的最新版本和Java 1.7.0_40。我也尝试过查找mkmf.log文件,但无法找到它。
答案 0 :(得分:4)
这是因为JAVA_HOME在sudo模式下被重置。要解决此问题,请打开/etc/sudoers
文件,添加以下行并保存。
Defaults env_keep += "JAVA_HOME"
现在重新打开终端并安装gem。
答案 1 :(得分:0)
我在Ubuntu上一直在努力解决这个问题。可靠的工作(尽管它是一个大锤)是:
this.likes.set(i,this.likes.get(i) + likes.get(i));
安装脚本对JAVA_HOME的格式敏感 - 它不应以斜杠字符结尾。