Superare aptitude
il Multiarch Bug perppa-purge
Normalmente, come hanno spiegato Vadim Rutkovsky e Takkat , l'esecuzione con la sintassi predefinita è un modo efficace per rimuovere tutti i pacchetti forniti da un PPA , eseguendo correttamente il downgrade a versioni fornite in altre fonti software configurate quando possibile.ppa-purge
Tuttavia, come ha sottolineato Takkat, il bug 831768 impedisce ppa-purge
di funzionare correttamente per rimuovere i pacchetti multiarch (come i pacchetti a 32 bit installati su sistemi a 64 bit). Questo perché aptitude
non è possibile gestire dipendenze in conflitto nei pacchetti multiarch (questo è il problema di cui si occupa il bug) e il comportamento predefinito di ppa-purge
è quello di utilizzare aptitude
per il downgrade dei pacchetti.
Fortunatamente, ppa-purge
accetta la -i
bandiera che induce a preferire apt-get
a aptitude
come backend. Come documentato nella segnalazione di bug, l'utilizzo apt-get
è un'alternativa efficace all'invocazione manuale aptitude
, pertanto l'esecuzione ppa-purge
con il -i
flag dovrebbe essere una soluzione efficace per la rimozione / il downgrade di tutti i pacchetti forniti da un PPA, inclusi i pacchetti multiarch .
Come farlo
Ecco la sintassi:
sudo ppa-purge -i ppa:ppaowner/ppaname
Come al solito (come quando -i
non si usa la bandiera):
ppaowner
viene sostituito con il proprietario del PPA.
/ppaname
è facoltativo. Se presente, ppaname
viene sostituito con il nome del PPA. In caso contrario, il valore predefinito è ppa
.
Ad esempio , supponiamo di avere installato il PPA per build instabili di qBittorrent e che volessi rimuoverlo completamente, riducendo automaticamente il downgrade di qBittorrent a qualsiasi versione disponibile attraverso le mie altre fonti software usando apt-get
dietro le quinte anzichéaptitude
. Quindi correrei:
sudo ppa-purge -i ppa:hydr0g3n/qbittorrent-unstable
Dove è documentato
Per qualche ragione, alcune utili opzioni per ppa-purge
non sono documentate nella sua pagina di manuale , incluso -i
. Ma puoi ottenere informazioni su di loro eseguendo ppa-purge -h
(o semplicemente ppa-purge
senza argomenti):
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.
"La preferenza inversa di apt-get upon aptitude" è un po 'enigmatica. Osservando la parte rilevante del codice sorgente ( ppa-purge
è solo uno script di shell, dopo tutto), possiamo vedere che questo significa che il comportamento predefinito è quello di preferiscono aptitude
a apt-get
, e la -i
bandiera inverte questo preferenza.