On Wed, Feb 27, 2008 at 07:46:04PM +0300, Dmitry V. Levin wrote: > On Sun, Feb 24, 2008 at 09:01:21PM +0300, Alexey Tourbin wrote: > [...] > > Чтобы не появилось слишком много bulk зависимостей, я реализовал > > оптимизацию, которая удаляет следующие зависимости (как "команды" > > в шелл-скриптах, так и соответствующие им /bin/ пути): > > sh cat rm mv cp mkdir ln > > > > (список можно будет немного увеличить, если кто-нибудь захочет > > составить более точную статистику, чем у меня получилось с ходу). > > > > Поскольку сам rpm требует coreutils и /bin/sh, то в любой > > не окончательно поломанной среде эти зависимости должны быть > > заведомо удовлетворены. > > Боюсь что эту оптимизацию придётся убрать, > иначе порядок установки пакетов в пустую систему может испортиться. Я об этом думал. Другая похожая возможность нарушения порядка -- это использование 'rpmi --root chroot/' при отсутствии rpm в чруте. В любом случае, корректная процедура инициализации пустой системы или чрута должна начинаться с установки самого rpm. Значит, порядок пакетов в худжем случае придётся проконтролировать только для конечного числа пакетов, от которых зависит rpm. Насколько я вижу, сейчас есть всего один пакет, который "меньше" rpm и в котором есть shell-скриптлет -- coreutils, в котором дёргается install-info. Значит, в coreutils желательно вручную прописать зависимость на /bin/sh. Ещё в принципе желательно добавить зависимость на /bin/sh в info-install. Таким образом, если заморачиваться этой гипотетической проблемой, то зависимость на /bin/sh нужна в трёх местах -- rpm, coreutils и info-install. Я считаю это достаточно надёжной конструкцией -- больше нигде зависимость на /bin/sh можно не ставить. С другой стороны, в hasher используется специальная процедура инициализации чрута, которая НЕ ПОЛАГАЕТСЯ на порядок установки базовых пакетов.