passenger meet Library not loaded error : liblzma.5.dylib

passenger meet Library not loaded error : liblzma.5.dylib

我正在尝试 运行宁 rails 与乘客。

我安装了 AWS SDK 1 和 2 gem:

gem 'aws-sdk-v1'
gem 'aws-sdk', '~> 2'

当我使用 AWS sdk 时 运行:

s3 = AWS::S3.new

我遇到错误:

LoadError: dlopen(/Users/XXXX/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.6.2/lib/nokogiri/nokogiri.bundle, 9): 
Library not loaded: /usr/local/lib/liblzma.5.dylib
Referenced from: /Users/XXXX/.rbenv/versions/1.9.3-p551/lib/ruby/gems/1.9.1/gems/nokogiri-1.6.6.2/lib/nokogiri/nokogiri.bundle
Reason: Incompatible library version: nokogiri.bundle requires version 8.0.0 or later, but liblzma.5.dylib provides version 6.0.0

otool -L 告诉我版本是 8.1.0

$ otool -L /usr/local/lib/liblzma.5.dylib
/usr/local/lib/liblzma.5.dylib:
/usr/local/lib/liblzma.5.dylib (compatibility version 8.0.0, current version 8.1.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1213.0.0)

很奇怪,我运行 'rails s'的时候没有出现这个错误。 通过 brew 更新/卸载/重新安装 xz 没有帮助。 更新/卸载/重新安装 gem nokogiri 也无济于事。

这不是 Passenger 的问题,而是您的 gem 之一的问题。显然你在过去的某个时间安装了 Nokogiri,然后它被链接到 liblzma 5,但一段时间后你将 liblzma 升级到不兼容的版本 6。尝试卸载它 gem,然后重新安装它。

试着按照这个https://github.com/PromyLOPh/pianobar/issues/530#issuecomment-125746641

这是修复:

使用 brew:brew install xz 因为 liblzma 现在在 xz 里面

更新宝石对我有用

bundle update