[devel] дизъюнкция зависимостей
Хихин Руслан
=?iso-8859-1?q?hihin_=CE=C1_yandex=2Eru?=
Сб Сен 15 13:53:39 MSD 2007
Здравствуйте Alexey Tourbin
В сообщении от Суббота 15 сентября 2007 Alexey Tourbin написал(a):
> On Thu, Sep 13, 2007 at 12:08:25AM +0400, Хихин Руслан wrote:
> > Здравствуйте Alexey Tourbin
> >
> А зачем? Мы обсуждали это на конференции. Если явно указывать
> дизъюнкцию, то она получается "закрытой" во времени, к ней нельзя
> ничего присоединить. Напр. Requires: gcc3.4|gcc4.1.
Ну, при следующей пересборке пакета она легко присоединяется.
> А можно длеать "открытую" дизъюнкцию на основе виртуальных
> зависимостей,
> типа Requires: /usr/bin/gcc. К ней потом можно будет задним числом
> "подшить" gcc4.2, и скорее всего такая семантика более преемлема
> с точки зрения репозитария в целом.
Не всегда зависимость определяется общим файлом - чаще - это различный
набор интерфейса.
> Вообще у меня была идея, что с помощью дополнительных виртуальных
> зависмостей (иногда с помощью явного умножения числа сущностей)
> можно выразить на зависимостях любую булеву функцию.
> См. теорему Поста о полноте системы булевых функций.
> Например мы хотим выразить функцию Requires: mysql xor postgresql.
>
> Делаем пакеты
> %package only-postgresql
> Requires: postgresql-server
> Conflicts: mysql-server
> Provides: postgresql-xor-mysql
>
> %package only-mysql
> Requires: mysql-server
> Conflicts: postgresql-server
> Provides: postgresql-xor-mysql
>
> В основном пакете пишем
> Requires: postgresql-xor-mysql
>
> То есть дислексия при выражении зависимостей присутствует, но в
> принципе
> система вроде бы полна.
Это мне понятно - дизъюнкционная зависимость и Provides это разные формы
отбражения одного и того-же. Вопрос стоит именно о возможности хранить
такую информацию не в куче пакетов, собираемых разными людьми, а в
одном пакете. Особенно полезно с учётом того, что дизъюнкция
выполняется при первой истине.
--
С уважением Хихин Руслан
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип : application/pgp-signature
Размер : 189 байтов
Описание: This is a digitally signed message part.
Url : <http://lists.altlinux.org/pipermail/devel/attachments/20070915/682d9223/attachment-0002.bin>
Подробная информация о списке рассылки Devel