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 То есть дислексия при выражении зависимостей присутствует, но в принципе система вроде бы полна.