LINUX.ORG.RU

Что за /usr/lib/.build-id/ в Fedora?

 ,


0

2

Решил я тут обновить систему, в итоге получаю:

Error: Transaction test error:
  file /usr/lib/.build-id/34/feaa549462e8818baa0629ce11da344465882b from install of skypeforlinux-8.79.0.92-1.x86_64 conflicts with file from package discord-0.0.16-1.fc35.x86_64

Скайп с репы ms, дискорд с rpmfusion. Наверное, договориться они не смогут и ближайшее время это не пофиксят. Отсюда вопросы:

  • Что такое .build-id?
  • Как вообще фиксить такие конфликты?

Как вообще фиксить такие конфликты?

Пересобирать обе конфликтующие рпмки. В обоих случаях это ошибка пакетирования, ни одна из рпмок не должна владеть файлом /usr/lib/.build-id.

Если он им очень нужен они как минимум каждая должны класть его в свой личный /usr/lib/skype/.build-id и /usr/lib/discord/.build-id соответственно. Но судя по всему это просто артефакт сборки, который в рпмку в принципе не должен был попасть.

P.S. Ну и это не в Fedora. В Fedora такое бы не прошло Package Review.

alpha ★★★★★ ()
Последнее исправление: alpha (всего исправлений: 1)
Ответ на: комментарий от alpha

Хм, понятно, спасибо. Сейчас попробую разобраться. Вообще, если не ошибаюсь, раньше такой штуки вообще не было. Похоже, это что-то новое.

u0000 ()
Ответ на: комментарий от NAY_GIGGER

У меня уже есть один пакетный менеджер в системе, зачем мне ещё один пихать? Как я потом в этой куче говна буду разбираться? Пусть будет один, но рабочий. Не такая и проблема раз в 100 лет починить, на самом деле я ещё ни разу в федоре не натыкался на пробелмы с пакетами.

u0000 ()
Ответ на: комментарий от anonymous

Скорее всего это от электрона, потому сконфликтовали дискорд и скайп.

u0000 ()
Ответ на: комментарий от u0000

Что-то я всё наврала вообще-то.

Сейчас глянула, оно есть и у многих обычных пакетов:

$ rpm -ql irrlicht
/usr/lib/.build-id
/usr/lib/.build-id/12
/usr/lib/.build-id/12/dc9054a49a1bb1cbc1a2e0280eb98a62474aff
...

Надо тогда понять что это за хеши и почему они пересекаются…

alpha ★★★★★ ()
Ответ на: комментарий от alpha

«/usr/lib/.build-id contains the main build-id files for installed packages. Before Fedora 27, these lived alongside the debug files in /usr/lib/debug, and were only shipped in debug RPMs. In Fedora 27, a change was introduced to allow parallel installation of multiple debug info packages.»

https://fedoraproject.org/wiki/Changes/ParallelInstallableDebuginfo

https://unix.stackexchange.com/questions/411727/what-is-the-purpose-of-usr-lib-build-id-dir

that’s where build ids come in — they are unique identifiers calculated by ld (look for –build-id there) over the significant portions of a binary

alpha ★★★★★ ()
Последнее исправление: alpha (всего исправлений: 1)

ls -l /usr/lib/.build-id/34/feaa549462e8818baa0629ce11da344465882b

lrwxrwxrwx. 1 root root 44 Sep 22 22:43 /usr/lib/.build-id/34/feaa549462e8818baa0629ce11da344465882b -> ../../../../usr/lib64/discord/chrome-sandbox

rpm -qlp /var/cache/dnf/skype-stable-e7e1776dd77cffbd/packages/skypeforlinux_8.79.0.92-1.x86_64.rpm | grep chrome-sandbox

/usr/share/skypeforlinux/chrome-sandbox

=> microsoft repackages chrome-sandbox and puts it in the wrong path.

until that’s fixed you can

dnf –exclude skypeforlinux update

anonymous ()
Ограничение на отправку комментариев: только для зарегистрированных пользователей