2013年2月25日星期一

Ruby的psych错误

按照官方文档安装GitLab,执行有些命令时会出现如下警告:
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
我觉得这只是个警告,就没有处理。而且按照上面的说明,只是用于YAML输出的,应该没有大问题。

后面执行这一步
sudo -u gitlab -H bundle exec rake gitlab:setup RAILS_ENV=production
出了这样的错误。我没有处理,继续按后面的步骤操作。安装完后,GitLab的网页可以打开,但是用LDAP认证登录是出现类似错误:
Could not authorize you from Ldap because "Can't dump anonymous class class".
GitLab诊断文档说这个错误出现是因为没有用Ruby 1.9.3,可我是新装的Ruby 1.9.3啊。在这个issue里面发现我的错误与一开始被我忽略的psych错误可能有关,需要先解决psych的错误。

按照这个方法重新安装Ruby之后还是有错。后来觉得这个答案更适合我的情况,可还是未能解决。折腾了多次后无解,我觉得我的Ruby环境已经被搞乱了,决定按照GitLab的安装文档从头安装一遍Ruby。

最终通过重新安装Ruby解决了上述错误。至于Ruby没有psych的原因,是我犯错误没有执行其中一条安装依赖的命令(我看到公司Wiki上有人贴的过程说没有执行这步也可以,而实际是我看错了,他是执行了这一步的):
sudo apt-get install -y build-essential zlib1g-dev libyaml-dev libssl-dev libgdbm-dev libreadline-dev libncurses5-dev libffi-dev curl git-core openssh-server redis-server postfix checkinstall libxml2-dev libxslt-dev libcurl4-openssl-dev libicu-dev
其中的libyam-dev没有安装,就导致Ruby没有了YAML的输出功能。

没有评论:

发表评论