我无法使用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安装必要的依赖项来实现它
请参阅下面的答案。
答案 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 notes
,rvm requirements
并查看您是否遗漏了某些内容。如果你仍然无法安装jruby我没有更多的想法(你可以尝试重新安装rvm)。
答案 1 :(得分:3)
我终于通过为jruby安装必要的依赖项来实现它
在运行rvm requirements
时,它会显示jruby
和jruby-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的所有帮助。