2

Rails 3.2.12 にアップデートしたところ、Bundler も libxml-ruby を 2.4.0 から 2.5.0 にアップデートしました。本番サーバー (nginx) を再起動するか、コンソールを開こうとすると、次のようになります。

/home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:10:in `const_get': uninitialized constant LibXML::XML::Error::I18N (NameError)
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:10:in `block (2 levels) in <class:Error>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:8:in `each'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:8:in `block in <class:Error>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:7:in `tap'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:7:in `<class:Error>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:5:in `<module:XML>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:4:in `<module:LibXML>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml/error.rb:3:in `<top (required)>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/libxml.rb:11:in `<top (required)>'
    from /home/cceom/webapps/rails2/gems/gems/libxml-ruby-2.5.0/lib/xml.rb:13:in `<top (required)>'

私の開発ボックスでは同じ問題は発生していません。

私が理解できるのは、2.5.0 gem がまだ古い 2.4.0 コンパイル済みライブラリを参照しており、その特定の定数が定義されていないということだけです。しかし、これがどのように発生するのか、どのように修正するのかはわかりません。これが正しいかどうかでもありません。

どんな考えでも大歓迎です。

4

2 に答える 2

2

私は同じ問題を抱えていました、それは本番では失敗しますが、ローカルで動作します。gem libxml-rubyのバージョンを2.4.0にフリーズしてみましたが、それは魅力のように機能します。

それが役に立てば幸い!

于 2013-02-13T15:33:39.923 に答える
0

この問題は、古いバージョンの libxml で発生しました。この問題を解決する libxml-ruby の更新バージョン 2.6.0 をリリースしました。

于 2013-02-17T05:52:20.277 に答える