У меня есть несколько коммерческих приложений, которые полагаются на FFMPEG или подчиненную зависимость, libpango и потенциально другие . Один из этих пакетов не работает в моей системе, поскольку версия и параметры компиляции FFMPEG или libpango теперь отличаются от стандартной версии Ubuntu. Я не уверен, какие программы полагаются на FFMPEG или libpango в качестве зависимости, или как узнать, какие версии используются.
Исходная ошибка:
ffmpeg: symbol lookup error: /lib/x86_64-linux-gnu/libpango-1.0.so.0: undefined symbol: hb_glib_script_to_script
Если я проверю, есть ли в libpango символ, я вижу, что его нет:
> readelf -a /lib/x86_64-linux-gnu/libpango-1.0.so.0 | grep hb_glib_script_to_script
85: 0000000000000000 0 FUNC GLOBAL DEFAULT UND hb_glib_script_to_script
Я проверил другие места, такие как / usr / local и ~ / .snap / * и эти экземпляры libpango также указывают этот символ как неопределенный.
Мне было интересно, может ли пакет иметь конфликтующую версию библиотеки, которая может быть замещающей. Но я не вижу никаких признаков этого.
> apt-cache rdepends --installed ffmpeg
ffmpeg
Reverse Depends:
bitwig-studio
ffmpeg:i386
imagemagick-6.q16
ffmpeg:i386
imagemagick-6.q16
ffmpeg:i386
Проверяя символьную ошибку, я обнаружил следующее: https://unix.stackexchange.com/questions/599152/debian-libpangoft2-1-0-so-0-undefined-symbol-hb-glib-script-from-script
Предлагается переустановить libharfbuzz0b
, которая является базовой библиотекой, которая должна предоставлять символ. Я переустановил его:
> sudo apt update && sudo apt reinstall libharfbuzz
Я все еще получаю эту ошибку.
Затем я проверил, существует ли несколько экземпляров FFMPEG, но их нет. Существует несколько копий libpango, однако дубликаты находятся в ~ / .snap и не должны разрешаться до версии системы.