Фотогалереи

Услуги

Помощь при использовании сайта

Prelink и добавление исключений

Я уже писал небольшую заметку про Prelink в которой немного пояснял работу этого пакета и здесь подробно не буду на этом останавливаться. Цель этого поста предоставить солюшн с помощью которого можно исправить некоторые проблемы в работе Prelink.

С недавних пор (после обновления системы) Prelink отказывался прелинковывать некоторые бинарники и падал с ошибкой

prelink: conflict.c:763: prelink_build_conflicts: Проверочное утверждение «j < ndeps» не выполнено.
Аварийный останов

Например в моем случае таким "несъедобным" пакетом для prelink оказался rtorrent. У других пользователей прелинковываться отказывались и другие пакеты, но точно выяснить зависимость дистрибутивов и пакетов в которых это проявляется невозможно. В случаях когда явно представляется, что проблема в самом софте, а не в моих кривых руках я пытаюсь найти в интернете упоминания этой проблемы и по возможности ее решение. В данном случае проблема достаточно известная и пока решается только исключением таких бинарников из списка прелинковки.
В принципе проблемы и нет, запустил prelink с ключем "-v", посмотрел где происходит затык и добавил исключение в /etc/prelink.conf и все.
Но в Gentoo (не знаю как в других дистрибутивах) этот самый prelink.conf постоянно обновляется и после обновления системы приходится заново вносить исключения в этот файл. Для того чтобы этого избежать есть простое решение.
Для начала создадим файл

/etc/env.d/99prelink

с таким содержанием

PRELINK_PATH_MASK="/usr/bin/rtorrent"

после чего запустим обновление окружения

sudo env-update

После этих манипуляций исключение будет добавляться в prelink.conf автоматически и больше не придется каждый раз его добавлять вручную.
P.S. У меня в исключених только rtorrent, в Вашем же случае таких исключений может быть больше и записывать их стоит как разделенный список. Другими словами просто разделяя их двоеточием:

PRELINK_PATH_MASK="/usr/bin/sakura":"/usr/bin/rtorrent"
0
Голосов пока нет
Ваша оценка: Нет