Rails应用程序启动时的Libxml-ruby错误 - 未初始化的常量LibXML :: XML :: Error :: I18N
问题描述:
我刚刚更新到Rails 3.2.12,并且Bundler也更新了libxml-ruby从2.4.0到2.5.0。当我重新启动我的生产服务器(nginx的),或试图打开一个控制台,我得到:Rails应用程序启动时的Libxml-ruby错误 - 未初始化的常量LibXML :: XML :: Error :: I18N
/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)>'
我并没有在我的dev的框相同的问题。
我能想到的是,一些2.5.0 gem仍然引用旧的2.4.0编译库,并且这个特定的常量没有在它们中定义。但不知道这将如何发生,以及如何纠正它。也不是这是否正确。
任何想法都会受到欢迎。
答
我有同样的问题,它在生产上失败,但在本地工作。我尝试冻结gem libxml-ruby到2.4.0的版本,它的功能就像一个魅力。
希望它有帮助!
答
该问题发生在旧版本的libxml上。我刚刚发布了更新版本的libxml-ruby,2.6.0,它可以解决问题。