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.

Другие вопросы по тегам