无法安装或更新gems:YAML解析错误

时间:2014-02-03 18:53:21

标签: 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已经更新了它的YAML解析器,并且宝石需要更新他们的config/boot.rb文件,但这对我没有帮助,除非我分叉我安装的每个宝石。

这是我的.gemrc,这是我唯一可以搞砸的地方:

gemhome: /home/dan/.gems
gempath:
    - /home/dan/.gems

Ruby版本:ruby 1.8.7 (2011-06-30 patchlevel 352) [x86_64-linux],在Ubuntu上使用apt-get安装。

开始安装红宝石宝石我该怎么办?我对ruby几乎一无所知,我只想安装一些以宝石形式发布的软件。

更新

查看我的问题,我发现错误消息中的ruby版本和ruby --version不同。 ruby命令和gem命令如何决定使用哪个版本?它们不同是否重要? 更新:我现在只有ruby 1.9.3。问题必须出在我的.gemrc

更新

删除我的.gemrc并以root身份安装。我的.gemrc有什么问题?

2 个答案:

答案 0 :(得分:1)

Yaml语法有效。 (见http://yamllint.com/)。

然而,问题在于变量名称gemhomegempath - 它们应该是GEM_PATHGEM_HOME

有关详细信息,请参阅What's the difference between GEM_HOME and GEM_PATH?

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

由于您的GEM_PATH / GEM_HOME不需要从默认值更改,因此您的情况下不需要gem配置文件...

答案 1 :(得分:0)

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

gem install <gem> --user-install

ruby gem FAQ中提及。 similar question建议使用RVM来管理宝石。它在家庭目录下安装宝石。