Это вопрос в дополнение к моему предыдущему вопросу.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)