Сделать так, чтобы apt-cache зависел только от предпочитаемой альтернативы

Сделать так, чтобы apt-cache зависел только от предпочитаемой альтернативы

Это вопрос в дополнение к моему предыдущему вопросу.apt-rdepends не показывает информацию о мультиархитектуре.

Решив эту проблему, я теперь столкнулся с проблемой, которая apt-cacheбудет рекурсивно перебирать все альтернативы для зависимости:

$ 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

На данный момент это увеличивает мой список посылок примерно на 300%.

Есть ли какие-нибудь предложения, как заставить его использовать только предпочтительные альтернативы (в примере: не пакеты i386)?

решение1

Была та же проблема. Я обнаружил, что можно использовать

-o APT::Cache::ShowOnlyFirstOr=true

что решает часть проблемы, хотя и не полностью — например, когда у вас многоархитектурная архитектура и один и тот же пакет предоставляется в обеих архитектурах (т. е. не ИЛИ, а фактически два пакета, которые можно использовать), то вы получаете рекурсию в обоих случаях.

Думаю, мне следует предупредить вас, что эта опция, похоже, нигде не документирована. Кроме того, я не знаю, всегда ли предпочтительная опция первая.

(Посмотрите, как используется «ShowOnlyFirstOr» в https://salsa.debian.org/apt-team/apt/blob/master/apt-private/private-depends.cc)

Связанный контент