Este manual fornece um conjunto de exemplos, veja por exemplo:
Depends: foo [i386], bar [amd64]
Você pode usar os Conflicts:
e Replaces:
específicos do arqui com essa sintaxe. Não sei como dizer "conflitos X1 / substitui X2 da mesma arquitetura", isso é para você pesquisar / experimentar. Não tenho certeza se algo assim funcionaria:
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]
Não tenho certeza se você pode ter dois pacotes com o mesmo nome, mas arquiteturas diferentes. Ainda assim, é um ponto de partida para você experimentar. Não deixe de ler o manual de políticas, o capítulo 7 descreve como os relacionamentos funcionam em detalhes.