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

Хихин Руслан hihin на yandex.ru
Сб Сен 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 это разные формы 
отбражения одного и того-же. Вопрос стоит именно о возможности хранить 
такую информацию не в куче пакетов, собираемых разными людьми, а в 
одном пакете. Особенно полезно с учётом того, что дизъюнкция 
выполняется при первой истине. 

-- 
С  уважением Хихин Руслан
----------- УМЕДХАЭБС ЮБУФШ -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 189 байтов
Описание: This is a digitally signed message part.
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20070915/682d9223/attachment.bin 


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