On Thu, Feb 28, 2008 at 09:00:53PM +0300, Alexey Tourbin wrote: > 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 как пакет всегда должен присутствовать в любой системе. > Насколько я вижу, сейчас есть всего один пакет, который "меньше" rpm > и в котором есть shell-скриптлет -- coreutils, в котором дёргается > install-info. Значит, в coreutils желательно вручную прописать > зависимость на /bin/sh. Ещё в принципе желательно добавить зависимость > на /bin/sh в info-install. А как быть с зависимостями на coreutils? Их тоже предлагается optimize out в сочетании с гарантией того, что coreutils должен быть установлен раньше других пакетов? В любом случае убирать автозависимости вида /bin/cp не вижу смысла: обычно такие зависимости это признак ошибки неиспользования $PATH. > Таким образом, если заморачиваться этой гипотетической проблемой, > то зависимость на /bin/sh нужна в трёх местах -- rpm, coreutils > и info-install. Я считаю это достаточно надёжной конструкцией -- > больше нигде зависимость на /bin/sh можно не ставить. А как гарантировать, что эти три кита будут установлены раньше других зависимых пакетов, если действует оптимизация зависимостей на coreutils? > С другой стороны, в hasher используется специальная процедура > инициализации чрута, которая НЕ ПОЛАГАЕТСЯ на порядок установки > базовых пакетов. Да, не о hasher речь. -- ldv