У меня есть несколько коммерческих приложений, которые полагаются на FFMPEG или его подзависимость, libpango и, возможно, другие. Один из этих пакетов ломается в моей системе, поскольку версия FFMPEG или libpango и параметры компиляции теперь отличаются от стандартной версии Ubuntu. Я не уверен, какие программы полагаются на FFMPEG или libpango как на зависимость, или как узнать, какие версии используются.
Исходная ошибка:
ffmpeg: ошибка поиска символа: /lib/x86_64-linux-gnu/libpango-1.0.so.0: неопределенный символ: 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 --установлен ffmpeg
ffmpeg
Обратное зависит:
битвиг-студия
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 переустановить libharfbuzz
Я все еще получаю эту ошибку.
Затем я проверил, есть ли несколько экземпляров FFMPEG, которых нет. Существует несколько копий libpango, однако дубликаты находятся в ~/.snap и не должны разрешаться до системной версии.