问题描述
我在 Linux 上运行 rails 版本 3.2.8 和 ruby 版本 1.9.3-p286
I'm running rails version 3.2.8 and ruby version 1.9.3-p286 on Linux
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]#
我可以生成迁移,但无法运行它.我不断收到以下错误消息
I can generate a migration but I cannot run it. I keep getting the following error message
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>
然后是很多调试信息
[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
I installed libyaml
rvm pkg install libyaml
然后重新安装ruby
rvm reinstall ruby-1.9.3-p286
但这没有帮助.
为什么我不断收到此错误消息的任何其他想法?
Any other ideas why I keep getting this error message?
谢谢.
推荐答案
您需要在您的系统上安装 libtool 包,否则 libyaml 将无法编译.对于 Ubuntu 尝试:
You need the libtool package installed on your system, otherwise libyaml won't compile. For Ubuntu try:
sudo apt-get 安装 libtool
rvm pkg 安装 libyaml
rvm pkg 安装 libyaml-dev
rvm 重新安装 1.9.3
您也可以简单地使用发行版的包管理器来安装库而不是 rvm.对于 Ubuntu:
Also you can simply use your distro's package manager to install the library instead of rvm. For Ubuntu:
sudo apt-get install libyaml libyaml-dev
这篇关于Ruby On Rails libyaml的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!