Преодоление aptitudeошибки Multiarch дляppa-purge
Обычно, как Вадим Рутковский и Takkat уже объяснили , работает ppa-purgeс синтаксисом по умолчанию является эффективным способом , чтобы удалить все пакеты , предоставляемые PPA, надлежащим образом понижая их версии , представленных в других сконфигурированных источниках программного обеспечения , когда это возможно.
Однако, как указал Таккат, ошибка 831768 не позволяет ppa-purgeправильно работать для удаления многоархивных пакетов (например, 32-разрядных пакетов, установленных в 64-разрядных системах). Это связано с тем, что aptitudeне может обрабатывать конфликтующие зависимости в пакетах multiarch (именно в этом и заключается ошибка), а поведение по умолчанию ppa-purge- использовать aptitudeдля понижения пакетов.
К счастью, ppa-purgeпринимает -iфлаг, который заставляет его предпочитать его apt-getв aptitudeкачестве своего бэкэнда. Как задокументировано в отчете об ошибках, использование apt-get- эффективная альтернатива ручному вызовуaptitude , поэтому запуск ppa-purgeс -iфлагом должен быть эффективным обходным путем для удаления / понижения всех пакетов, предоставляемых PPA, включая пакеты multiarch .
Как это сделать
Вот синтаксис:
sudo ppa-purge -i ppa:ppaowner/ppaname
Как обычно (так же, как когда -iфлаг не используется):
ppaowner заменен владельцем PPA.
/ppanameнеобязательно. Если присутствует, ppanameзаменяется именем PPA. Если нет, то по умолчанию ppa.
Например , предположим, что у меня установлен PPA для нестабильных сборок qBittorrent , и я хотел полностью удалить его, автоматически понижая qBittorrent до любой версии, доступной через другие мои источники программного обеспечения, которые используют apt-getза кулисами вместоaptitude . Тогда я бы побежал:
sudo ppa-purge -i ppa:hydr0g3n/qbittorrent-unstable
Где это задокументировано
По некоторым причинам, несколько полезных опций ppa-purgeне описаны на его странице руководства , в том числе -i. Но вы можете получить информацию о них, запустив ppa-purge -h(или просто ppa-purgeбез аргументов):
ek@Del:~$ ppa-purge -h
Usage: sudo ppa-purge [options] <ppa:ppaowner>[/ppaname]
ppa-purge will reset all packages from a PPA to the standard
versions released for your distribution.
Options:
-p [ppaname] PPA name to be disabled (default: ppa)
-s [host] Repository server (default: ppa.launchpad.net)
-d [distribution] Override the default distribution choice.
-y Pass -y --force-yes to apt-get or -y to aptitude
-i Reverse preference of apt-get upon aptitude.
-h Display this help text
Example usage commands:
sudo ppa-purge xorg-edgers
will remove https://launchpad.net/~xorg-edgers/+archive/ppa
sudo ppa-purge -p xorg-testing sarvatt
will remove https://launchpad.net/~sarvatt/+archive/xorg-testing
sudo ppa-purge ppa:ubuntu-x-swat/x-updates
will remove https://launchpad.net/~ubuntu-x-swat/+archive/x-updates
Notice: If ppa-purge fails for some reason and you wish to try again,
(For example: you left synaptic open while attempting to run it) simply
uncomment the PPA from your sources, run apt-get update and try again.
«Обратное предпочтение apt-get on aptitude» немного загадочно. Глядя на соответствующую часть исходного кода ( ppa-purgeэто просто сценарий оболочки, в конце концов), мы можем видеть , что это означает , что поведение по умолчанию предпочитают , aptitudeчтобы apt-getи -iфлаг меняет это предпочтение.