无法使用rvm在ubuntu上安装jruby

时间:2012-02-21 07:22:53

标签: ubuntu jruby rvm ubuntu-11.10 failed-installation

我无法使用rvm在ubuntu 11.10上安装jruby。

jatin@silverSpoon:~$ rvm install jruby
jruby-1.6.4 - #fetching 
jruby-1.6.4 - #extracting jruby-bin-1.6.4 to /home/jatin/.rvm/src/jruby-1.6.4
ERROR: Error running 'tar xzf "/home/jatin/.rvm/archives/jruby-bin-1.6.4.tar.gz" -C /home/jatin/.rvm/tmp/rvm_src_4913 --no-same-owner', please read /home/jatin/.rvm/log/jruby-1.6.4/extract.log
ERROR: There has been an error while trying to extract the source.  
Halting the installation.
ERROR: There has been an error while trying to fetch the source.  
Halting the installation.

其他有用信息:

jatin@silverSpoon:~$ which ant
/usr/bin/ant

生成的日志文件的内容是:

jatin@silverSpoon:~$ cat ~/.rvm/log/jruby-1.6.4/extract.log
[2012-02-22 00:47:37] tar xzf "/home/jatin/.rvm/archives/jruby-bin-1.6.4.tar.gz" -C /home/jatin/.rvm/tmp/rvm_src_4913 --no-same-owner

gzip: stdin: not in gzip format
tar: Child returned status 1
tar: Error is not recoverable: exiting now

我机器上安装的Java是:

jatin@silverSpoon:~$ update-alternatives --config java
There are 3 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                           Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-openjdk/jre/bin/java        1061      auto mode
  1            /usr/lib/jvm/java-6-openjdk/jre/bin/java        1061      manual mode
  2            /usr/lib/jvm/java-7-openjdk-i386/jre/bin/java   1051      manual mode
* 3            /usr/lib/jvm/jdk1.7.0/jre/bin/java              3         manual mode

Press enter to keep the current choice[*], or type selection number: 

这里有什么问题?

修改
在尝试答案时,我得到了这个

jatin@silverSpoon:~/android/eclipse$ rvm remove jruby
it seems that /home/jatin/.rvm/src/jruby-1.6.4 is already non existent.
it seems that /home/jatin/.rvm/rubies/jruby-1.6.4 is already non existent.
Removing jruby-1.6.4 aliases...
Removing jruby-1.6.4 wrappers...
Removing jruby-1.6.4 environments...
Removing jruby-1.6.4 binaries...

并在rvm install jruby上,我收到同样的错误。

P.S 即可。
 我能够安装jruby-head而没有任何错误,但没有任何其他jruby版本。

编辑2:
我终于通过为jruby安装必要的依赖项来实现它 请参阅下面的答案。

2 个答案:

答案 0 :(得分:4)

gzip: stdin: not in gzip format似乎下载的文件无效。

我建议你删除并重新安装它:

rvm remove jruby
rvm cleanup all
rvm install jruby

rvm cleanup all表示清除下载和缓存的所有内容。

我不明白的一件事:当我尝试rvm install jruby时,jruby-1.6.6已安装,但在你的情况下它是jruby-1.6.4。
可能这是因为您没有最新版本的rvm 。更新rvm并重试。

rvm requirements看你是否忘了安装东西。 jruby 1.6需要open-jre-6,而不是sun-jdk。希望这有帮助。

最终修改:rvm notesrvm requirements并查看您是否遗漏了某些内容。如果你仍然无法安装jruby我没有更多的想法(你可以尝试重新安装rvm)。

答案 1 :(得分:3)

我终于通过为jruby安装必要的依赖项来实现它 在运行rvm requirements时,它会显示jrubyjruby-head的要求。

# For JRuby, install the following:
  jruby: /usr/bin/apt-get install curl g++ openjdk-6-jre-headless
  jruby-head: /usr/bin/apt-get install ant openjdk-6-jdk

我错过了卷曲,我使用的是sun-java而不是openjdk 在设置适当的java并安装curl时,我可以毫不费力地安装jruby

这也说明了为什么我可以安装 jruby-head 而不是 jruby 。谢谢@Tyler Long的所有帮助。