[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