Рейтинг:2

FFMPEG, неопределенный символ hb_glib_script_to_script

флаг au

У меня есть несколько коммерческих приложений, которые полагаются на 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 и не должны разрешаться до системной версии.

AjayC avatar
флаг gb
Надеюсь, это поможет вам ```https://askubuntu.com/questions/13296/how-do-i-find-the-reverse-dependency-of-a-package```
MrMowgli avatar
флаг au
@AjayC Это было прекрасно. На мой вопрос отвечает тот же ответ. Мой дубликат этого вопроса. Спасибо!
флаг cn
Отвечает ли это на ваш вопрос? [Как найти обратную зависимость пакета?](https://askubuntu.com/questions/13296/how-do-i-find-the-reverse-dependency-of-a-package)
MrMowgli avatar
флаг au
Я изменил вопрос, потому что не вижу ничего необычного в основной проблеме. Я все еще не могу отследить проблему с символом :(
N0rbert avatar
флаг zw
Пожалуйста, поделитесь выводом `find /usr/local/ -name "*.so*"`.
Simon Sudler avatar
флаг us
Отвечает ли это на ваш вопрос? [Как перечислить зависимые пакеты (обратные зависимости)?](https://askubuntu.com/questions/128524/how-to-list-dependency-packages-reverse-dependencies)
MrMowgli avatar
флаг au
@N0rbert Нет вывода (нет общих объектов в /usr/local)
N0rbert avatar
флаг zw
Попробуйте `sudo apt-get install --reinstall libpango-1.0-0` для переустановки pango.
MrMowgli avatar
флаг au
Сделал так сначала, ничего не изменилось. Кажется, что все копии libPango не включают этот символ.
MrMowgli avatar
флаг au
На самом деле похоже, что `libharfbuz0b` устанавливается мгновенно?
Рейтинг:2
флаг au

Базовая библиотека libharfbuzz0b был включен в специальную папку Bitwig: /opt/bitwig-studio/lib, однако их сборка не экспортировала символ. По какой-то причине файлы .so с областью действия программ переопределяют системные общие объекты, вызывая эту проблему.

Я отследил зависимости библиотеки, запустив:

ldd /lib/x86_64-linux-gnu/libpango-1.0.so.0

Это показало, что соответствующие файлы находятся в ожидаемых местах. Бег:

> readelf -s /usr/lib/x86_64-linux-gnu/libharfbuzz.so.0 | grep hb_glib_script_to_script
   439: 00000000000cdff0 9 FUNC GLOBAL DEFAULT 14 hb_glib_script_to_script

показывает, что он должен быть там. Я отследил проблему, запустив locate, чтобы найти любые экземпляры libharfbuzz

> найти libharfbuzz | grep .so
/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0
/usr/lib/x86_64-linux-gnu/libharfbuzz.so.0.20600.4
/opt/bitwig-studio/lib/bitwig-studio/libharfbuzz.so.0
/opt/bitwig-studio/lib/jre/lib/libharfbuzz.so

показывает, что файл фактически включен непосредственно в Bitwig. Бег readelf -s /opt/bitwig-studio/lib/bitwig-studio/libharfbuzz.so.0 символ не определен.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.