[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