Pokonanie aptitude
błędu Multiarch dlappa-purge
Normalnie, jak Vadim Rutkovsky i Takkat zostały wyjaśnione , bieganie ppa-purge
z domyślną składni jest skutecznym sposobem na usunięcie wszystkich pakietów dostarczonych przez PPA, odpowiednio do ich obniżenia wersji przewidzianych w innych skonfigurowanych źródeł oprogramowania w miarę możliwości.
Jednak, jak zauważył Takkat, błąd 831768 uniemożliwia ppa-purge
poprawne działanie w celu usuwania pakietów wielodostępowych (takich jak pakiety 32-bitowe zainstalowane w systemach 64-bitowych). Wynika to z faktu, że aptitude
nie jest w stanie poradzić sobie z konfliktowymi zależnościami w pakietach wielościennych (o to właśnie chodzi w błędzie), a domyślnym zachowaniem ppa-purge
jest używanie aptitude
do obniżania pakietów.
Na szczęście, ppa-purge
przyjmuje -i
flagę, która powoduje, że wolą apt-get
, aby aptitude
jako backend. Jak udokumentowano w raporcie o błędzie, używanie apt-get
jest skuteczną alternatywą dla ręcznego wywoływania aptitude
, więc uruchomienie ppa-purge
z -i
flagą powinno być skutecznym obejściem dla usuwania / obniżania poziomu wszystkich pakietów udostępnianych przez PPA, w tym pakietów wielościennych .
Jak to zrobić
Oto składnia:
sudo ppa-purge -i ppa:ppaowner/ppaname
Jak zwykle (tak samo, jak gdy -i
flaga nie jest używana):
ppaowner
zostaje zastąpiony właścicielem umowy PPA.
/ppaname
jest opcjonalny. Jeśli jest obecny, ppaname
zostaje zastąpiony nazwą PPA. Jeśli nie, domyślnie jest to ppa
.
Załóżmy na przykład , że mam zainstalowany PPA dla niestabilnych wersji qBittorrent i chciałem go całkowicie usunąć, automatycznie obniżając qBittorrent do dowolnej wersji dostępnej za pośrednictwem moich innych źródeł oprogramowania, używając apt-get
zamiast scenaptitude
. Potem biegłbym:
sudo ppa-purge -i ppa:hydr0g3n/qbittorrent-unstable
Gdzie jest to udokumentowane
Z jakiegoś powodu na stronie podręcznikappa-purge
nie udokumentowano kilku przydatnych opcji , w tym . Ale możesz uzyskać informacje na ich temat, uruchamiając (lub po prostu bez argumentów):-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.
„Odwrotna preferencja apt-get upon aptitude” jest nieco tajemnicza. Patrząc na danym kawałku kodu źródłowego ( ppa-purge
jest tylko skrypt powłoki, mimo wszystko), widzimy, że to oznacza, że domyślnym zachowaniem jest wolą aptitude
się apt-get
, a -i
flaga odwraca tę preferencję.