首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Ruby On Rails libyaml

Ruby On Rails libyaml
EN

Stack Overflow用户
提问于 2012-10-30 08:56:54
回答 2查看 1.7K关注 0票数 4

我在Linux上运行rails版本3.2.8和ruby版本1.9.3-p286

代码语言:javascript
复制
user1@company.com [~/rails_apps/myapp]# rails -v
Rails 3.2.8
user1@company.com [~/rails_apps/myapp]# ruby -v
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]
user1@company.com [~/rails_apps/myapp]#

我可以生成迁移,但不能运行它。我一直收到以下错误消息

代码语言:javascript
复制
user1@company.com [~/rails_apps/myapp]# rake db:migrate
/home3/user1/.rvm/rubies/ruby-1.9.3-p286/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.
/home3/user1/ruby/gems/gems/json-1.7.5/lib/json/common.rb:67: [BUG] unknown type 0x22 (0xc given)
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]
<snip>

然后是大量的调试信息

代码语言:javascript
复制
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html

Aborted
user1@company.com [~/rails_apps/myapp]#

我安装了libyaml

代码语言:javascript
复制
rvm pkg install libyaml

然后重新安装ruby

代码语言:javascript
复制
rvm reinstall ruby-1.9.3-p286

但这并没有帮助。

为什么我一直收到这个错误消息,还有其他的想法吗?

谢谢。

EN

回答 2

Stack Overflow用户

发布于 2012-10-30 11:09:50

您需要在系统上安装libtool包,否则libyaml将无法编译。对于Ubuntu,请尝试:

sudo apt-get install libtool

rvm pkg install libyaml

rvm pkg install libyaml-dev

rvm reinstall 1.9.3

此外,您还可以简单地使用发行版的包管理器来安装库,而不是rvm。对于Ubuntu:

sudo apt-get install libyaml libyaml-dev

票数 2
EN

Stack Overflow用户

发布于 2012-10-30 11:46:44

这里有两个截然不同的问题,一个是由Yaml生成的警告,另一个是来自JSON gem的错误。

警告是:

代码语言:javascript
复制
/home3/user1/.rvm/rubies/ruby-1.9.3-p286/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.

这不一定是问题,您的Ruby安装将退回到使用较旧的Syck Yaml库。Syck已经从Ruby2中删除了,所以你最终需要解决它,但这不是目前的主要问题。

在Yaml警告之后,您会立即收到以下内容:

代码语言:javascript
复制
/home3/user1/ruby/gems/gems/json-1.7.5/lib/json/common.rb:67: [BUG] unknown type 0x22 (0xc given)
ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-linux]

这是一个来自JSON gem的错误。JSON gem使用本机扩展,我认为这个错误来自于使用随Ruby的早期版本和更高版本一起安装的gem。尝试重新安装您的gem(特别是json)来修复此问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13131794

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档