2017-04-20 15 views
0

UPDATE:当我使用sudo(例如sudo rbenv install jruby-9.1.2.0)时,一切正常。但我不想那:)。JRuby安装失败,除非sudo带有“undefined local variable或method`r for main:Object”

$ ruby -v 
NameError: undefined local variable or method `v' for main:Object 
<top> at -v:1 

$ sudo ruby -v 
jruby 9.1.2.0 (2.3.0) 2016-05-26 7357c8f Java HotSpot(TM) 64-Bit Server VM 25.51-b03 on 1.8.0_51-b16 +jit [darwin-x86_64] 

寻找到哪里寻找什么东西(一个或多个)都要求在安装过程中提示sudo。 C Ruby安装/运行得很好,没有sudo


试图安装JRuby,但得到问题,即-r标志被解释为一个变量。使用rvm和JRuby 1.7.x版本时出现类似的问题。同事没有任何相同的问题。以前能够使用rvm和rbenv安装JRuby 1.7,并且从那时起我不知道系统上发生了什么变化。试用JAVA_HOME设置为1.7和1.8版本,结果相同。

我找不出什么在我的系统上导致这是一个问题 - 寻找重新成像之前的故障排除的想法:)。

rbenv install -v jruby-9.1.2.0 
/var/folders/qt/xqr8qztj5tl94l0r3l9t0pm4zbpz12/T/ruby-build.20170420180901.3389 ~ 
Downloading jruby-bin-9.1.2.0.tar.gz... 
HTTP/1.1 200 OK 
Content-Type: binary/octet-stream 
Content-Length: 32578117 
Connection: keep-alive 
Date: Thu, 20 Apr 2017 18:41:50 GMT 
Last-Modified: Fri, 27 May 2016 22:23:15 GMT 
ETag: "749bb917dde9666e365e12bbe776a5c2" 
Accept-Ranges: bytes 
Server: AmazonS3 
Age: 16032 
X-Cache: Hit from cloudfront 
Via: 1.1 0b1b12cfcb11f71988a190f16ef65179.cloudfront.net (CloudFront) 
X-Amz-Cf-Id: mKmI9h4xs22ajaNTInTyIeqrnwQw1XHOJzcbKc--yknq4CUOu3XUmg== 

-> https://dqw8nmjcqpjn7.cloudfront.net/60598a465883ab4c933f805de4a7f280052bddc793b95735465619c03ca43f35 
/var/folders/qt/xqr8qztj5tl94l0r3l9t0pm4zbpz12/T/ruby-build.20170420180901.3389/jruby-9.1.2.0 /var/folders/qt/xqr8qztj5tl94l0r3l9t0pm4zbpz12/T/ruby-build.20170420180901.3389 ~ 
Installing jruby-9.1.2.0... 
Building native extensions. This could take a while... 
ERROR: Error installing jruby-launcher: 
    ERROR: Failed to build gem native extension. 

    current directory: /Users/username/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/jruby-launcher-1.1.2-java 
/Users/username/.rbenv/versions/jruby-9.1.2.0/bin/jruby -r ./siteconf20170420-3455-1f44pgz.rb extconf.rb 
NameError: undefined local variable or method `r' for main:Object 
    <top> at -r:1 

extconf failed, exit code 1 

Gem files will remain installed in /Users/username/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/jruby-launcher-1.1.2-java for inspection. 
Results logged to /Users/username/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/extensions/universal-java-1.7/2.3.0/jruby-launcher-1.1.2-java/gem_make.out 

BUILD FAILED (OS X 10.11.6 using ruby-build 20170322) 

Inspect or clean up the working tree at /var/folders/qt/xqr8qztj5tl94l0r3l9t0pm4zbpz12/T/ruby-build.20170420180901.3389 
Results logged to /var/folders/qt/xqr8qztj5tl94l0r3l9t0pm4zbpz12/T/ruby-build.20170420180901.3389.log 

Last 10 log lines: 

    current directory: /Users/username/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/jruby-launcher-1.1.2-java 
/Users/username/.rbenv/versions/jruby-9.1.2.0/bin/jruby -r ./siteconf20170420-3455-1f44pgz.rb extconf.rb 
NameError: undefined local variable or method `r' for main:Object 
    <top> at -r:1 

extconf failed, exit code 1 

Gem files will remain installed in /Users/username/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/gems/jruby-launcher-1.1.2-java for inspection. 
Results logged to /Users/username/.rbenv/versions/jruby-9.1.2.0/lib/ruby/gems/shared/extensions/universal-java-1.7/2.3.0/jruby-launcher-1.1.2-java/gem_make.out 

这里是我的OS信息

$ uname -a 
Darwin username-mbp 15.6.0 Darwin Kernel Version 15.6.0: Fri Feb 17 10:21:18 PST 2017; root:xnu-3248.60.11.4.1~1/RELEASE_X86_64 x86_64 

也有问题与JRuby的发射器,但不知道这只是一个症状:

$ gem install jruby-launcher 
ERROR: Could not find a valid gem 'jruby-launcher' (>= 0) in any repository 
ERROR: Possible alternatives: tmux_launcher, RubyRun_CE, ass_launcher, ec2launcher, jruby-ehcache 
+0

你在哪里传递'-r'标志? – Jacob

+0

这些都是作为'rbenv'或'rvm'安装的一部分完成的 - 我刚刚运行'rbenv install -v jruby-9.1.2.0' – eebbesen

+0

这只发生在El Capitan上启用FileVault之后。在启用FileVault之前,JRuby的安装和使用如预期的那样。 – eebbesen

回答

0

更新:显示使用中-S选项JRUBY_OPTS是罪魁祸首。


我取消设置在我的用户会话中的所有环境变量,并确保env完全匹配sudo env除了以下:

  • MAIL
  • LOGNAME
  • 用户
  • USERNAME
  • SUDO_COMMAND
  • SUDO_USER
  • SUDO_UID
  • SUDO_GID

然后使用没有sudo用户,我能够没有问题,安装JRuby。

现在,即使具有与我遇到问题时完全相同的环境变量,我现在也可以在闲暇时安装/执行JRuby。仍然不知道为什么这样工作,或者哪个环境变量出错。