Я уже писал небольшую заметку про 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"