[devel] дизъюнкция зависимостей

Alexey Tourbin =?iso-8859-1?q?at_=CE=C1_altlinux=2Eru?=
Сб Сен 15 13:41:32 MSD 2007


On Thu, Sep 13, 2007 at 12:08:25AM +0400, Хихин Руслан wrote:
> Здравствуйте Alexey Tourbin
>   В сообщении от 12 сентября 2007 Alexey Tourbin написал(a):
>  > On Wed, Sep 12, 2007 at 07:51:04PM +0400, Alexey I. Froloff wrote:
>  > Ты мыслишь прикладно, а я мыслю алгебраически (этим я НЕ объявляю,
>  > что я НЕ мыслю также и прикладно).  В общем, мне кажется, что это
>  > глупость, более или менее.  Если не хочется иметь сломанного гнома,
>  > то не надо ломать гном, только и всего.  Если же гном сломался, то
>  > не надо взывать к высоким материям и зависимостям типа Recommends,
>  > а лучше чем-то помочь его починить, если это возможно.
> А всё-таки - реально-ли в rpm включить дизъюнкционные зависимости ? Типа 
> один из всех ?

А зачем?  Мы обсуждали это на конференции.  Если явно указывать
дизъюнкцию, то она получается "закрытой" во времени, к ней нельзя
ничего присоединить.  Напр. 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

То есть дислексия при выражении зависимостей присутствует, но в принципе
система вроде бы полна.
----------- следующая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: =?iso-8859-1?q?=CF=D4=D3=D5=D4=D3=D4=D7=D5=C5=D4?=
Url     : <http://lists.altlinux.org/pipermail/devel/attachments/20070915/721f00c7/attachment-0002.bin>


Подробная информация о списке рассылки Devel