reprepro FilterList ignora pacotes contendo: i386

reprepro FilterList ignora pacotes contendo: i386

Estou usando reprepropara criar um espelho Debian local parcial. Meu conf/updatesarquivo está assim:

Name: update-wheezy
Method: http://ftp.tu-graz.ac.at/mirror/debian
Suite: wheezy
Components: main contrib non-free
Architectures: i386
FilterList: purge mirror.packages

FilterListaponta para o arquivo mirror.packagesque contém todos os pacotes atualmente instalados. Eu crio este arquivo com dpkg:

dpkg --get-selections > conf/mirror.packages

Até agora tudo bem. Isso funciona bem. Mas então percebi que alguns pacotes estão faltando no meu repositório local. A saída de dpkg --get-selectionscontém algumas linhas onde o nome do pacote termina com :i386. Exemplo:

libxxf86dga1:i386                               install
libxxf86vm1:i386                                install
lighttpd                                        install

Exatamente esses i386pacotes estão faltando. Eu resolvi isso removendo o sufixo:

dpkg --get-selections | sed 's/:i386//g' > conf/mirror.packages

Agora minhas perguntas:

  1. Isso é um bug no reprepro? Ou estou fazendo algo errado? A página man afirma que FilterListusa o formato de saída dpkg --get-selections.
  2. Existe alguma maneira de suprimir dpkga arquitetura?
  3. Por que alguns pacotes possuem o :i386sufixo, mas a maioria não?
  4. Por que a arquitetura faz parte do nome do pacote? É possível ter o mesmo pacote de arquiteturas diferentes no mesmo sistema?

Responder1

O :i386 não faz parte do nome do pacote, mas é uma indicação da arquitetura para a qual o pacote se destina. Isto é o resultado da introdução do suporte do debian para instalação de pacotes de múltiplas arquiteturas ("multiarch").

Verhttps://wiki.debian.org/Multiarchpara mais informações.

Não tenho certeza sobre o que determina se a arquitetura é mostrada para um pacote específico. Inicialmente pensei que só fosse mostrado quando o pacote fosse de uma arquitetura estrangeira, mas pelos comentários do nharrer estava claramente enganado. Olhando a lista de nharrer e pensando em outros contextos, vi :<architecture> em, acho que pode estar mostrando isso para todos os pacotes "multi-arch:same"

Suspeito que a funcionalidade filterlist no reprepro seja anterior ao multiarch, não entende o que :i386 significa e, portanto, o trata como parte do nome do pacote.

informação relacionada