Как мы можем добавить дугу определенный тег конфликтов при создании .deb пакета?

Мы пытаемся создать поддерживаемый пакет i386 .deb мультидуги. Существует два .deb пакета, основываются на i386 X1, и X2 (X2 является подмножеством двоичных файлов X1). X1 <-> X2 конфликтуют друг друга при установке. Только один .deb пакет может быть установлен в любом экземпляре.

У нас так же есть двоичные файлы на xa64 дуге. Снова на xa64, существует два .deb пакета X1, и X2 (X2 является подмножеством двоичных файлов X1). X1 <-> X2 конфликтуют друг друга при установке. Только один .deb пакет может быть установлен в любом экземпляре.

В случае пакета i386 .deb мультидуги пакеты i386 .deb (X1 и X2) могут быть установлены на xa64 вдоль стороны с 64 битами (X1 и X2)

Однако я вижу, что при установке X1:i386 и X1:amd64 может сосуществовать Однако, он бросает ошибку конфликта при попытке установить X1:i386 и X2:amd64

Короче говоря, Можем мы отмечать пакет для конфликта на основе Конфликта дуги: X2:i386

Пакет X1:i386 должен только конфликтовать с X2:i386 и позволить другим пакетам сосуществовать, пакет X1:amd64 должен только конфликтовать с X2:amd64 и позволить другим пакетам сосуществовать

X1:i386 может сосуществовать с X1:amd64, ИЛИ X2:amd64 X2:i386 может сосуществовать с X1:amd64 ИЛИ X2:amd64

Спасибо за Ваш ответ

2
задан 6 June 2014 в 19:13

1 ответ

Отношения могут быть ограничены определенным набором архитектуры. Это обозначается в скобках после каждого отдельного имени пакета и дополнительной спецификации версии. Скобки включают непустой список имен архитектуры Debian в формате, описанном в строках спецификации Архитектуры, Раздел 11.1, разделенный пробелом. Восклицательные знаки могут предварительно ожидаться к каждому из имен. (Не разрешено для некоторых имен предварительно ожидаться с восклицательными знаками, в то время как другие не.)

https://www.debian.org/doc/debian-policy/ch-relationships.html

Это руководство обеспечивает ряд примеров, посмотрите, например:

Depends: foo [i386], bar [amd64]

Вы можете использовать определенный для дуги Conflicts: и Replaces: с этим синтаксисом. Я не уверен, как сказать "конфликты/замены X1 X2 той же архитектуры", это - чтобы Вы исследовали/пробовали. Я не уверен, работало ли что-то вроде этого:

package: X1
Architecture: i386
Conflicts: X2 [i386]
Replaces: X2 [i386]

package: X1
Architecture: amd64 
Conflicts: X2 [amd64]
Replaces: X2 [amd64]

package: X2
Architecture: i386
Conflicts: X1 [i386]
Replaces: X1 [i386]

package: X2
Architecture: amd64 
Conflicts: X1 [amd64]
Replaces: X1 [amd64]

я не уверен, если у Вас может быть два пакета с тем же именем, но различной архитектурой. Однако, это - начальная точка для Вас для экспериментирования. Обязательно прочитайте руководство политики, глава 7 описывает, как отношения работают в мельчайших подробностях.

1
ответ дан 7 October 2019 в 17:17

Другие вопросы по тегам:

Похожие вопросы: