Homebrew更新了zlib并导致一切崩溃。

15

所以一个brew update将zlib从1.2.7更新到了1.2.8。耶。

后来我注意到运行bundle时出现了问题。我遇到了关于zlib的LoadError

Error loading RubyGems plugin "/Users/michael/.rvm/gems/ruby-2.0.0-p0@global/gems/rubygems-bundler-1.1.1/lib/rubygems_plugin.rb": dlopen(/Users/michael/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.3.0/zlib.bundle, 9): Library not loaded: /usr/local/opt/zlib/lib/libz.so.1.2.7
  Referenced from: /Users/michael/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.3.0/zlib.bundle
  Reason: image not found - /Users/michael/.rvm/rubies/ruby-2.0.0-p0/lib/ruby/2.0.0/x86_64-darwin12.3.0/zlib.bundle (LoadError)

brew doctor说:

dyld: Library not loaded: /usr/local/opt/zlib/lib/libz.so.1.2.7
  Referenced from: /usr/local/bin/php
  Reason: image not found

按照此链接尝试运行brew tap homebrew/dupes,但出现Error: Already tapped!的错误。

接着尝试运行rvm reinstall 2.0.0。现在bundle可以正常工作,但rails s仍然无法启动。

/Users/michael/.rvm/gems/ruby-2.0.0-p0@rails3/gems/activesupport-3.2.13/lib/active_support/dependencies.rb:251:in `require': dlopen(/Users/michael/.rvm/gems/ruby-2.0.0-p0@rails3/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle, 9): Library not loaded: /usr/local/opt/zlib/lib/libz.so.1.2.7 (LoadError)
  Referenced from: /usr/local/opt/libxml2/lib/libxml2.2.dylib
  Reason: image not found - /Users/michael/.rvm/gems/ruby-2.0.0-p0@rails3/gems/nokogiri-1.5.9/lib/nokogiri/nokogiri.bundle

有人知道如何修复这个问题吗?

更新

我设法使用 cp /usr/local/opt/zlib/lib/libz.so.1.2.8 /usr/local/opt/zlib/lib/libz.so.1.2.7 来解决我的所有问题,但这只是一个临时的解决方案。如果有人有真正的解决方案,我将不胜感激。


5
这个解决方案非常粗糙,但它有效! - David Yell
4个回答

9

是的,我建议采用以下步骤:

  1. brew remove php53(或php54)。如果需要更加强力的操作,请确保您的Mac上没有之前安装的php版本。
  2. (可选) 进行brew cleanup。我没有这样做,但事情已经得到了解决。
  3. brew install php53(或php54)。

然后,php -v命令将会显示版本信息:

PHP 5.3.23 (cli) (built: May  6 2013 16:18:42)
Copyright (c) 1997-2013 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2013 Zend Technologies
    with Xdebug v2.2.1, Copyright (c) 2002-2012, by Derick Rethans

没有关于缺少库或其他任何问题的投诉了。

这个方法很管用,不过我还得对一些依赖于php54的程序做同样的操作。感谢您的帮助! - Michael Gruber

3

1
今天,在运行brew upgrade之后,git停止工作。当我尝试运行git时,我还遇到了zlib的加载错误。在执行以下操作后:
  1. brew remove git
  2. brew cleanup
  3. brew install git
问题解决了,git又可以正常工作了。感谢@Stephane。
我认为这可能对其他人也有帮助,所以在这里发布了它。

0
在我的情况下,我需要删除 php(对我来说是 php54),清理,安装 josegonzalez/php,然后重新安装 php。
brew remove php54
brew cleanup
brew tap josegonzalez/php
brew install php54

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接