Surmonter aptitude
le bogue Multiarch pourppa-purge
Normalement, comme l' ont expliqué Vadim Rutkovsky et Takkat , l'exécution avec la syntaxe par défaut est un moyen efficace de supprimer tous les packages fournis par un PPA, en les rétrogradant correctement vers des versions fournies dans d'autres sources de logiciels configurées chaque fois que possible.ppa-purge
Cependant, comme Takkat l'a souligné, le bogue 831768 empêche ppa-purge
de fonctionner correctement pour supprimer les packages multiarchives (comme les packages 32 bits installés sur les systèmes 64 bits). En effet, aptitude
ne peut pas gérer les dépendances conflictuelles dans les packages multiarchitecture (c'est le sujet du bogue), et le comportement par défaut de ppa-purge
est d'utiliser aptitude
pour rétrograder les packages.
Heureusement, ppa-purge
accepte le -i
drapeau qui lui fait préférer apt-get
à aptitude
comme backend. Comme indiqué dans le rapport de bogue, l'utilisation apt-get
est une alternative efficace à l'invocation manuelle aptitude
, donc l'exécution ppa-purge
avec l' -i
indicateur devrait être une solution efficace pour supprimer / rétrograder tous les packages fournis par un PPA, y compris les packages multiarchives .
Comment faire
Voici la syntaxe:
sudo ppa-purge -i ppa:ppaowner/ppaname
Comme d'habitude (comme lorsque le -i
drapeau n'est pas utilisé):
ppaowner
est remplacé par le propriétaire du PPA.
/ppaname
est facultatif. S'il est présent, il ppaname
est remplacé par le nom de l'APP. Sinon, il est par défaut ppa
.
Par exemple , supposons que le PPA pour les versions instables de qBittorrent soit installé et que je souhaite le supprimer complètement, déclassant automatiquement qBittorrent vers la version disponible via mes autres sources logicielles utilisant en apt-get
arrière-plan au lieu deaptitude
. Ensuite, je courrais:
sudo ppa-purge -i ppa:hydr0g3n/qbittorrent-unstable
Où c'est documenté
Pour une raison quelconque, quelques options utiles pour ppa-purge
ne sont pas documentées dans sa page de manuel , notamment -i
. Mais vous pouvez obtenir des informations à leur sujet en exécutant ppa-purge -h
(ou simplement ppa-purge
sans argument):
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 préférence inverse d'apt-get sur aptitude" est un peu cryptique. En regardant la pièce correspondante du code source ( ppa-purge
est juste un script shell, après tout), on voit que cela signifie que le comportement par défaut est de préférer aptitude
à apt-get
, et le -i
drapeau renverse cette préférence.