brew cask install meld: "не могу импортировать GTK+": что не так с моей библиотекой?
Я попытался установить соединение на моем 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
Я отмечаю вопросы Как мне исправить ошибки 'Cannot import: 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
Приложение с этим, все волшебно работает.
Мой вопрос: как мне исправить домашнее пиво, чтобы оно подбирало правильную версию библиотеки, чтобы у будущих пользователей не возникало этой проблемы?
я вижу это brew cask
не может быть собран из исходного кода и всегда устанавливается из бинарного файла, поэтому я немного удивлен, что у него неправильная версия библиотеки. Я нашел слитое рубиновое досье, но не мудрее. Боюсь, я ничего не знаю об указании сборок варева или бочек.
Спасибо!
2 ответа
Теперь это исправлено. Все, что вам нужно сделать, это обновить бочку Meld.
Обновление немного нелогично. Для обновления списка доступных бочек вы используете brew update
не brew cask update
, но для обновления бочек на новую версию вы используете brew cask upgrade
, не просто brew upgrade
,
Поэтому правильная последовательность обновления всех установленных бочек:
brew update
brew cask upgrade
Не уверен, что это квалифицируется как ответ, но здесь идет. Во-первых, спасибо за то, что определили причину проблемы, так как она затронула меня и после обновления до MacOS High Sierra. я не homebrew
эксперт, так что этот "ответ" просто формализует то, что вы нашли...
unlink /Applications/Meld.app/Contents/Frameworks/libz.1.dylib
ln -s /usr/lib/libz.1.dylib /Applications/Meld.app/Contents/Frameworks/libz.1.dylib
Первая строка удаляет символическую ссылку на местный Мелдlibz.1.dylib
(127692 байта, от 4 мая 2016 года), который, похоже, был в версии 1.2.8. Следующая строка воссоздает эту символическую ссылку, но указывает на глобальный (GTK +) libz.1.dylib
(186432 байта, от 25 октября 2017 г.), возможно версия 1.2.11.
Надеемся, что доморощенный сопровождающий бочки Meld представит правильное исправление, но в то же время запуск этих двух команд в терминале устраняет эту конкретную проблему Meld, так что Meld может работать под MacOS High Sierra.