Superar aptitude
el error multiarch parappa-purge
Normalmente, como Vadim Rutkovski y Takkat han explicado , corriendo ppa-purge
con la sintaxis predeterminada es una forma efectiva de eliminar todos los paquetes proporcionados por un PPA, ellos degradar correctamente a las versiones proporcionadas en otras fuentes de software configuradas siempre que sea posible.
Sin embargo, como ha señalado Takkat, el error 831768 impide que ppa-purge
funcione correctamente para eliminar paquetes multiarch (como los paquetes de 32 bits instalados en sistemas de 64 bits). Esto se debe a aptitude
que no puede manejar dependencias conflictivas en paquetes multiarch (de eso se trata el error), y el comportamiento predeterminado de ppa-purge
es usar aptitude
para degradar paquetes.
Afortunadamente, ppa-purge
acepta la -i
bandera que hace que se prefiera apt-get
a aptitude
como motor. Como se documenta en el informe de error, el uso apt-get
es una alternativa efectiva a la invocación manual aptitude
, por lo que ejecutar ppa-purge
con el -i
indicador debería ser una solución efectiva para eliminar / degradar todos los paquetes proporcionados por un PPA, incluidos los paquetes multiarch .
Cómo hacerlo
Aquí está la sintaxis:
sudo ppa-purge -i ppa:ppaowner/ppaname
Como de costumbre (igual que cuando -i
no se usa la bandera):
ppaowner
se reemplaza con el dueño del PPA.
/ppaname
es opcional. Si está presente, ppaname
se reemplaza con el nombre del PPA. Si no, por defecto es ppa
.
Por ejemplo , supongamos que tengo instalado el PPA para compilaciones inestables de qBittorrent y quiero eliminarlo por completo, degradando automáticamente qBittorrent a cualquier versión disponible a través de mis otras fuentes de software que se utilizan apt-get
detrás de escenaaptitude
. Entonces correría:
sudo ppa-purge -i ppa:hydr0g3n/qbittorrent-unstable
Donde está documentado
Por alguna razón, algunas opciones útiles para ppa-purge
no están documentadas en su página de manual , incluyendo -i
. Pero puede obtener información sobre ellos ejecutando ppa-purge -h
(o simplemente ppa-purge
sin argumentos):
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 "preferencia inversa de apt-get upon aptitude" es un poco críptica. Al observar la pieza relevante del código fuente ( ppa-purge
es sólo un script de shell, después de todo), podemos ver que esto significa que el comportamiento por defecto es preferir aptitude
a apt-get
, y la -i
señal revierte esta preferencia.