尽管存在,但Ruby找不到psych.so

时间:2012-11-19 04:51:20

标签: ruby-on-rails ruby installation rvm yaml

使用rvm安装Rails后,我遇到了以下错误:

/afs/andrew.cmu.edu/usr11/kvudata/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/yaml.rb:56:in '<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

所以为了获得更多信息,我去了irb并试图要求'心理':

1.9.3-p327 :001 > require 'psych'
LoadError: libyaml-0.so.2: cannot open shared object file: No such file or directory -/afs/andrew.cmu.edu/usr11/kvudata/.rvm/rubies/ruby-1.9.3-p327/lib/ruby/1.9.1/x86_64-linux/psych.so

但是当我导航到它试图找到psych.so的指定位置时,它就存在了!

我尝试卸载ruby并重新安装以及卸载,从源代码编译libyaml,然后重新安装ruby,但无济于事,错误不会消失。

1 个答案:

答案 0 :(得分:2)

这不是一个“真正的”解决方案,但我能够让事情发挥作用。

就我而言,libyaml安装在/usr/local/lib中。将该路径添加到我的环境变量就可以了(由Shared Libraries启发)。我将以下内容添加到我的.bash_profile

LD_LIBRARY_PATH=/usr/local/lib
export LD_LIBRARY_PATH

对于像我这样的其他访问者 - 正在尝试使用capistrano进行此工作,将其添加到我的deploy.rb工作:

set :default_environment, {'LD_LIBRARY_PATH' => '/usr/local/lib'}

我期待更明智的建议。