On Thu, Mar 29, 2007 at 03:22:54AM +0400, Dmitry V. Levin wrote: > > > Чтобы решить эту проблему, я решил добавить специальный provides метод > > > в пакет alternatives. Он добавляет в provides все альтернативы которые > > > начинаются с /usr/bin/ и /usr/sbin/. > > > > > > Ниже приведены некоторые подробности. Есть ли недостатки у этого > > > подхода? Может образоваться некоторое (небольшое) количество "мусорных" > > > provides, типа /usr/bin/autoconf-default или /usr/bin/i586-alt-linux-gcc. > > > С другой стороны, в принципе предусмотрено отключение любого prov метода. > > > > > +++ b/alternatives/alternatives.prov > > > @@ -0,0 +1,11 @@ > > > +#!/bin/sh -efu > > > + > > > +. /usr/lib/rpm/functions > > > > Недостаток тут такой, что у alternatives появится зависимость > > на rpm-build. > > Пожалуй, это многовато для alternatives. alternatives.prov можно внести в rpm-build. Это сделает rpm-build чувствительным к формату альтернатив. Но это может помочь решить ещё одну достаточно неприятную в принципе проблему. Речь идет об алгоритме find-package. Если в каком-либо скрипте используется "альтернативный" бинарь, то в текущем виде алгоритм find-package может дать непредсказуемый результат. Дело в том, что в buildroot'е альтарнативного симлинка, как правило, не стоит. То есть find-package может дать "случайную" зависимость на какой-либо другой пакет, который предоставляет альтернативу. Можно обучить find-package искать в buildroot'е файл с альтернативами и смотреть прежде всего туда (чтобы пропустить ненужную зависимость). Но одно это уже делает rpm-build чувствительным к формату альтернатив.