Я попытался установить meld на свой iMac под управлением OS / X 10.13.1 High Sierra.
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
Отмечу вопросы Как исправить ошибку melds 'Невозможно импортировать: GTK +', вызванную отсутствием 'gi.repository'? и Ошибка Meld Невозможно импортировать: GTK +; Нет модуля с именем репозиторий, но эта проблема, похоже, другая.
Я нашел эту страницу, на которой предлагается что /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
и когда я заменил libz.1.dylib в моем приложении meld
на этот, все волшебным образом сработало.
У меня вопрос: как исправить homebrew, чтобы он использовал правильную версию библиотеки, чтобы у будущих пользователей не было этой проблемы?
Я вижу, что brew cask
не может собирать из исходного кода и всегда устанавливается из двоичного файла, поэтому Я немного удивлен, что у него неправильная версия библиотеки. Я нашел файл meld ruby , но я не мудрее. Боюсь, я ничего не знаю о том, как указывать составы для пива или бочки.
Спасибо!
brew update
, а неbrew cask update
, для обновления контейнеров необходимо запускатьbrew cask upgrade
, а не толькоbrew upgrade
. - person user31389   schedule 19.01.2018