【发布时间】:2018-04-30 06:08:52
【问题描述】:
我尝试在运行 OS/X 10.13.1 High Sierra 的 iMac 上安装 meld。
brew cask install meld
和homebrew 完成没有错误,但是当我尝试运行它时,我看到了
$ meld check1ping.sh check2pings.sh
frozen: ImportError
Cannot import: GTK+
dlopen(/Applications/Meld.app/Contents/Resources/lib/python2.7/gi/_gi.so, 2): Symbol not found: _inflateValidate
Referenced from: /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
Expected in: /Applications/Meld.app/Contents/Frameworks/libz.1.dylib
in /System/Library/Frameworks/ImageIO.framework/Versions/A/Resources/libPng.dylib
我注意到How do I fix melds 'Cannot import: GTK+' error caused by missing 'gi.repository'? 和Meld error "Cannot import: GTK+; No module named repository" 的问题,但这个问题似乎有所不同。
我发现this page 这表明/Applications/Meld.app/Contents/Frameworks/libz.1.dylib 已过时。这是我在/Applications/Meld.app/Contents/Frameworks看到的:
-rwxr-xr-x 1 myusername staff 127692 4 May 2016 libz.1.2.8.dylib
lrwxr-xr-x 1 myusername staff 16 16 Nov 15:24 libz.1.dylib -> libz.1.2.8.dylib
寻找替代品,我找到了:
lrwxr-xr-x 1 root wheel 12 11 Nov 09:57 /usr/lib/libz.1.1.3.dylib -> libz.1.dylib
lrwxr-xr-x 1 root wheel 12 11 Nov 09:57 /usr/lib/libz.1.2.11.dylib -> libz.1.dylib
lrwxr-xr-x 1 root wheel 12 11 Nov 09:57 /usr/lib/libz.1.2.5.dylib -> libz.1.dylib
lrwxr-xr-x 1 root wheel 12 11 Nov 09:57 /usr/lib/libz.1.2.8.dylib -> libz.1.dylib
-rwxr-xr-x 1 root wheel 186432 25 Oct 17:37 /usr/lib/libz.1.dylib
lrwxr-xr-x 1 root wheel 12 11 Nov 09:57 /usr/lib/libz.dylib -> libz.1.dylib
当我用这个替换我的 meld 应用程序中的 libz.1.dylib 时,一切都神奇地工作了。
我的问题是:如何修复 homebrew 以便它选择正确版本的库,这样未来的用户就不会遇到这个问题?
我看到 brew cask cannot build from source 并且总是从二进制文件安装,所以我有点惊讶它似乎有错误的库版本。我找到了meld ruby file,但我一点也不聪明。恐怕我对指定 brew 或 cask 构建一无所知。
谢谢!
【问题讨论】:
-
现在已修复。我意识到,虽然要更新您使用
brew update而不是brew cask update的木桶,但要升级木桶您必须运行brew cask upgrade,而不仅仅是brew upgrade。 -
嘿,非常感谢您的辛勤工作!我很高兴我不是唯一一个不能处理这些 ()&(*%&^! 事情的人。如果您想添加任何类型的答案,我会很乐意为它打勾你。
标签: homebrew macos-high-sierra homebrew-cask