[devel] прописывать requires или полагаться на автомат
Alexey Tourbin
=?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Вт Апр 22 19:18:07 MSD 2008
On Tue, Apr 22, 2008 at 06:41:31PM +0400, Alexey Tourbin wrote:
> On Tue, Apr 22, 2008 at 12:19:16PM +0300, Artem Zolochevskiy wrote:
> > Есть пакет (docs-admin_basics) в post/postun которого вызывется:
> > /usr/bin/docs_mklinks
> > Сам же этот скрипт (/usr/bin/docs_mklinks) содержится в пакете docs-utils.
> >
> > Вопрос:
> > Нужно ли в спек docs-admin_basics прописывать руками зависимость на
> > docs-utils, или же достаточно того, что при сборке пакета автоматически
> > проставляется зависимость на /usr/bin/docs_mklinks ?
>
> Достаточно автоматической зависимости. Более того, автоматическая
> зависимость является более точной (в предположении, что репозитарий
> содержит всего один пакет с /usr/bin/docs_mklinks).
Это предположение можно ослабить. Можно допустить, что в репозитарии
есть несколько пакетов с /usr/bin/docs_mklinks; но при этом они должны
обладать базовой совместимостью. Идея состоит в том, что имя
зависимости является "контрактом", то есть означает определённые вещи.
Имя зависимости /usr/bin/docs_mklinks означает, что можно запустить эту
программу и получить определённый результат. Автоматическая файловая
(виртуальная) зависимость, в таком случае, всё ещё является более точной
(и предпочтительной), чем зависимость на пакет docs-utils.
Пример: программа /usr/bin/mutt, пакеты mutt и mutt1.5.
Зависимость /usr/bin/mutt предпочтительна, зависимость на mutt крайне
нежелательна.
Дело в том, что любая зависимость должна быть обоснована. Зависимость
на docs-utils будет иметь _нетривиальное_ обоснование, что этот пакет
нужен потому, что _мы думаем_, что в нём содержится программа
/usr/bin/docs_mklinks, которую мы хотим запустить. Индюк думал...
Явная же зависимость на /usr/bin/docs_mklinks выгодно отличается тем,
что она является "самообоснованной", и тут думать уже не надо.
Теперь рассмотрим худший случай, когда в репозитарии есть несколько
unrelated пакетов, содержащих несовместимые программы /usr/bin/docs_mklinks.
Но это уже проблема самого репозитария, а не отдельных пакетов и
автоматических зависимостей. Нельзя положить в репозитарий всё что
угодно и ожидать потом, что всё будет хорошо работать. Всё что угодно
хорошо работать не будет (автоматические виртуальные зависимости не
отменяют требований к целостности репозитария). Принцип недопущения
"всего что угодно" называется falsifiability.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 197 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20080422/cc50e9a0/attachment-0002.bin>
Подробная информация о списке рассылки Devel