4

Linux で rails バージョン 3.2.8 と ruby​​ バージョン 1.9.3-p286 を実行しています。

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]#

移行を生成できますが、実行できません。次のエラーメッセージが表示され続けます

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をインストールしました

rvm pkg install libyaml

その後、ルビーを再インストールしました

rvm reinstall ruby-1.9.3-p286

しかし、それは役に立ちませんでした。

このエラー メッセージが表示され続ける理由は他にありますか?

ありがとう。

4

2 に答える 2

2

システムに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

于 2012-10-30T03:09:49.780 に答える
0

ここには 2 つの明確な問題があります。Yaml によって生成された警告と、それに続く JSON gem からのエラーです。

警告は次のとおりです。

/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 は Ruby 2 から削除されたため、最終的には対処する必要がありますが、現時点では大きな問題ではありません。

Yaml 警告の直後に、次のメッセージが表示されます。

/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 を新しいバージョンで使用したことが原因であると思います。jsonこれを修正するには、gem (特に ) を再インストールしてみてください。

于 2012-10-30T03:46:43.783 に答える