Surmonter le bogue Multiarch de aptitude
pour ppa-purge
Normalement, comme Vadim Rutkovsky et Takkat ont expliqué , en exécutant ppa-purge
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 les versions fournies dans d'autres sources logicielles configurées dans la mesure du possible.
Cependant, comme Takkat l’a souligné, le bogue 831768 empêche ppa-purge
de travailler correctement pour supprimer les packages multiarch (tels que les packages 32 bits installés sur les systèmes 64 bits). Cela est dû au fait que aptitude
ne peut pas gérer les dépendances conflictuelles dans les packages multiarchies (c'est ce qui concerne le bogue), et que le comportement par défaut de ppa-purge
consiste à utiliser aptitude
pour mettre à jour les paquets.
Heureusement, ppa-purge
accepte l'indicateur -i
, ce qui lui fait préférer apt-get
à aptitude
en tant que backend. Comme indiqué dans le rapport de bogue, l'utilisation de apt-get
est un alternative efficace à l'invocation manuelle de aptitude
, l'exécution de ppa-purge
avec l'indicateur -i
devrait être une solution efficace pour supprimer / rétrograder tous les packages fournis par un PPA, y compris les packages multiarques .
Comment faire
Voici la syntaxe:
sudo ppa-purge -i ppa:ppaowner/ppaname
Comme d'habitude (comme lorsque l'indicateur -i
n'est pas utilisé):
-
ppaowner
est remplacé par le propriétaire du PPA.
-
/ppaname
est facultatif. Si présent, ppaname
est remplacé par le nom du PPA. Sinon, la valeur par défaut est ppa
.
Par exemple , supposons que je disposais du PPA pour les versions instables de qBittorrent installé, et je voulais le supprimer complètement, en rétrogradant automatiquement qBittorrent à la version disponible sur mes autres sources de logiciels en utilisant apt-get
en arrière-plan au lieu de aptitude
. Alors je courrais:
sudo ppa-purge -i ppa:hydr0g3n/qbittorrent-unstable
Où il est documenté
Pour une raison quelconque, quelques options utiles pour ppa-purge
ne sont pas documentées dans sa page de manuel , y compris -i
. Mais vous pouvez obtenir des informations à leur sujet en exécutant ppa-purge -h
(ou simplement ppa-purge
sans arguments):
[email protected]:~$ 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.
"Préférence inversée d'apt-get upon aptitude" est un peu cryptique. En regardant la partie pertinente du code source ( ppa-purge
est juste un script shell, après tout), nous pouvons voir Cela signifie que le comportement par défaut consiste à préférer aptitude
à apt-get
et que l'indicateur -i
inverse cette préférence.