Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby Can';t安装或更新gems:YAML解析错误_Ruby_Gem - Fatal编程技术网

Ruby Can';t安装或更新gems:YAML解析错误

Ruby Can';t安装或更新gems:YAML解析错误,ruby,gem,Ruby,Gem,我正在尝试安装Compass和Jekyll,但gem命令失败: $ gem update /usr/lib/ruby/1.9.1/psych.rb:154:in `parse': (<unknown>): couldn't parse YAML at line 2 column 0 (Psych::SyntaxError) Ruby版本:Ruby 1.8.7(2011-06-30 patchlevel 352)[x86\u 64-linux],使用apt get on Ubuntu

我正在尝试安装Compass和Jekyll,但gem命令失败:

$ gem update
/usr/lib/ruby/1.9.1/psych.rb:154:in `parse': (<unknown>): couldn't parse YAML at line 2 column 0 (Psych::SyntaxError)
Ruby版本:
Ruby 1.8.7(2011-06-30 patchlevel 352)[x86\u 64-linux]
,使用apt get on Ubuntu安装

开始安装ruby gems需要做什么?我对ruby几乎一无所知,我只想安装一些作为gems分发的软件

更新

看看我的问题,我发现错误消息中的ruby版本和ruby--version是不同的。ruby命令和gem命令如何决定使用哪个版本?他们的不同有关系吗更新:我现在只有ruby 1.9.3。问题一定是我的
.gemrc

更新

删除my.gemrc并作为root works安装。my.gemrc有什么问题?

Yaml语法是有效的。(见附件)

然而,问题在于变量名
gemhome
gempath
——它们应该是
GEM\u PATH
GEM\u HOME

有关更多信息,请参阅

您可以在删除.gemrc文件之前和之后键入
gem env
,您应该会在gem路径中看到差异


gem配置文件在您的情况下并不真正需要,因为您的gem\u路径/gem\u主目录不需要更改为默认值…

要在主目录下安装gem,请使用
--user install
参数:

gem install <gem> --user-install
gem安装--用户安装

在报告中提到。建议使用来管理宝石。它会在home目录下安装gems。

使用ruby-1.8.7有什么特别的原因吗?它于去年6月退役。可能尝试安装一个较新的Ruby,例如使用RVM或chruby。它必须是以前使用apt get安装的。现在我已经安装了ruby1.9.1包,我将卸载它。更新re:是的,这很重要。您可以看到与
gem env
一起使用的路径,但是,通常是Linux发行版处理同时安装的不同Ruby版本之间的切换。我都是Gentoo,所以在这方面我帮不了你,但是你可能想寻找像
ruby18
gem18
ruby19
gem19
这样的二进制文件。可能您的
ruby
gem
二进制文件只是符号链接。我卸载了ruby包,所以现在ruby1.9.1是唯一安装的ruby包。但是,
ruby--version
ruby 1.9.3p0
。也许我应该找一个PPA来安装ruby 1.9.3。通往ruby的符号链接路径似乎很复杂:'/usr/bin/ruby->/etc/alternations/ruby->/usr/bin/ruby1.9.1`。我将卸载所有的rubies并从PPA中获取1.9.3。我再次删除了
.gemrc
,这就解决了这个问题
.gemrc
是yaml,可能有语法错误?使用
GEM_HOME
GEM_PATH
不会更改GEM安装目录,但这两个变量确实显示在
GEM env
中。我看到
/home/dan/.gem
是默认的gem主路径之一,所以您是对的,我根本不需要
.gemrc
。我试图让gems安装在我的主目录下,这样我就不必是root用户来管理它们,但这是另一个问题的主题。
GEM\u HOME
不是更改GEM安装路径的正确方法吗?
GEM install--user install
执行我想要的操作。不需要
.gemrc
gem install <gem> --user-install