Faça com que o apt-cache dependa apenas de recursão em vez da alternativa preferida

Faça com que o apt-cache dependa apenas de recursão em vez da alternativa preferida

Esta é uma pergunta complementar à minha pergunta anteriorapt-rdepends não mostra informações multiarch.

Com esse problema resolvido, encontrei agora o problema que apt-cachese repetirá em todas as alternativas para uma dependência:

$ apt-cache depends --recurse --no-recommends --no-suggests --no-breaks --no-suggests --no-replaces --no-conflicts --no-pre-depends nano 
nano
  Depends: libc6
  Depends: libncursesw5
  Depends: libtinfo5
 |Depends: dpkg
    dpkg:i386
  Depends: install-info
    install-info:i386
libc6
  Depends: libgcc1
libncursesw5
  Depends: libtinfo5
  Depends: libc6
  Recommends: libgpm2
libtinfo5
  Depends: libc6
dpkg
dpkg:i386
install-info
  Depends: libc6
install-info:i386
  Depends: libc6:i386
libgcc1
  Depends: gcc-4.9-base
  Depends: libc6
libgpm2
  Depends: libc6
libc6:i386
  Depends: libgcc1:i386
gcc-4.9-base
libgcc1:i386
  Depends: gcc-4.9-base:i386
  Depends: libc6:i386
gcc-4.9-base:i386

Atualmente, isso aumenta minha lista de pacotes em cerca de 300%.

Alguma sugestão sobre como forçá-lo a usar apenas as alternativas preferidas (no exemplo: não os pacotes i386)?

Responder1

Tive o mesmo problema. Eu descobri que se pode usar

-o APT::Cache::ShowOnlyFirstOr=true

o que resolve um pouco do problema, porém não completamente - por exemplo, quando você tem multiarch e o mesmo pacote é fornecido em ambas as arquiteturas (ou seja, não OR, mas na verdade dois pacotes que podem ser usados), você obtém recursão em ambos.

Acho que devo avisar que esta opção não parece estar documentada em lugar nenhum. Além disso, não sei se a opção preferida é sempre a primeira.

(Veja como 'ShowOnlyFirstOr' é usado em https://salsa.debian.org/apt-team/apt/blob/master/apt-private/private-depends.cc)

informação relacionada