如何解决"红宝石安装缺少心理"的错误?

Pou*_*uya 158 ruby macos ruby-on-rails rvm

我使用rvm来安装ruby 1.9.3.即使它已成功安装,它也抱怨libyaml.现在,每当我想安装一个宝石(比如铁轨)时,这个警告会显示出来:

It seems your ruby installation is missing psych (for YAML output). To eliminate this warning, please install libyaml and reinstall your ruby.
Run Code Online (Sandbox Code Playgroud)

我使用的是Mac OS X 10.7(Lion).

pet*_*gnz 217

就我而言

rvm pkg install libyaml
Run Code Online (Sandbox Code Playgroud)

rvm reinstall ruby-1.9.3-p125
Run Code Online (Sandbox Code Playgroud)

解决了这个问题.

对于使用Ubuntu的用户,请确保libtool在上述步骤之前安装:

sudo apt-get install libtool
Run Code Online (Sandbox Code Playgroud)

对于macOS用户(使用自制程序):

rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby
Run Code Online (Sandbox Code Playgroud)

  • 你的意思是:`rvm package install libyaml` (11认同)
  • 运行`rvm pkg install libyaml`后,它建议用`rvm重新安装所有--force`重新安装所有红宝石.如果您有多个,可能会有用. (8认同)
  • 不得不按照http://serverfault.com/questions/442150/how-to-fix-ruby-的建议``rvm重新安装1.9.3 --with-libyaml-dir =/home/rails/.rvm/usr`安装-的缺失,迷幻的,YAML的输出上的CentOS (7认同)
  • 不,他的意思是`rvm pkg install libyaml`.从`rvm usage`:`pkg ::安装依赖包{readline,iconv,zlib,openssl}`. (3认同)

Giz*_*wai 20

对于ubuntu和rvm

sudo apt-get install libtool
rvm pkg install libyaml
rvm reinstall 1.9.3
Run Code Online (Sandbox Code Playgroud)

工作


mat*_*att 19

如果不使用rvm,而是从头开始构建和安装ruby 1.9.3 - 例如,您使用rbenv管理ruby版本- 您必须首先安装libyaml.从http://pyyaml.org/获取; 目前,您想要的文件是http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz.打开tarball并cd进入生成的文件夹.然后:

./configure --prefix=/usr/local
make
sudo make install
Run Code Online (Sandbox Code Playgroud)

你现在准备建立红宝石了.从http://ftp.ruby-lang.org/pub/ruby/下载ruby .打开tarball并cd进入生成的文件夹.现在:

./configure --prefix=/wherever/you/want/it/to/go
make
make install
Run Code Online (Sandbox Code Playgroud)

(或者可能sudo make install,取决于你放置它的位置.)如果使用rbenv,你会知道它切换到rbenv global 1.9.3-p194(或任何你的版本被调用)并且gem --version在没有警告的情况下工作.这对我在Mac OS X 10.6.8上有用.(更新:我刚刚在Mac OS X 10.8.1上试过这个,它似乎在那里工作得很好.)

  • 如果你必须在没有sudo的情况下安装yaml,在配置yaml时指定一个除`/ usr/local`之外的前缀,然后使用`--with-opt-dir =/path/to/yaml/prefix --with-yaml配置ruby前缀= /路径/到/红宝石/ prefix` (4认同)

Cat*_*arz 17

brew install libyaml
rvm reinstall 1.9.3
Run Code Online (Sandbox Code Playgroud)

是什么对我有用(雪豹).

  • 我只需要第一行,然后再次尝试(我正在使用 rbenv) (3认同)

Van*_*uan 9

在我的情况下,解决方案是将psychgem 添加到Gemfile.


AKW*_*KWF 6

我有这个问题.libyaml不会编译.事实证明我错过了libtool.

yum install libtool
yum install libyaml (or rvm pkg install libyaml)
rvm reinstall 1.9.3
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.


ork*_*den 5

如果您在使用自制软件的macOS上安装了ruby,请尝试此解决方案

rm -rf /usr/local/lib/ruby/gems/ && brew reinstall ruby

请注意,这将摆脱所有已安装的gem。最好gem list在运行之前保存已安装宝石的列表。