Pour une mise à niveau fluide de 10.04 à 10.10, je voudrais supprimer tous les packages qui ne se trouvent pas dans les référentiels par défaut (par exemple chrome PPA et référentiels tiers). Quelle est la méthode la plus simple (de préférence CLI) pour rechercher et supprimer ces packages?
Edit: cette question n'est pas limitée aux PPA, j'ai également un référentiel x2go, donc je cherche une commande générique pour supprimer les paquets appartenant à un certain référentiel. Pour les AAE, la question Comment supprimer les AAE contient d'excellentes réponses.
package-management
Lekensteyn
la source
la source
Réponses:
Ce script peut lister tous les packages d'un serveur / branche particulier (en modifiant les deux variables déclarées):
si vous devez répertorier tous les packages ne provenant pas d'un serveur particulier, indépendamment de la branche, remplacez l'avant-dernière ligne par:
la source
$2 == server && $3 == branch
par$2 != server
, on répond à ma question. Veuillez l'branch=
indiquer dans votre réponse :) (la ligne peut être supprimée) Remarque: il est supposé que tous les packages proviennent d'un seul serveur de référentiel.libvpx0
package existait aussi bien dans le référentiel principal que dans le PPA au chrome quotidien. Après avoir enlevé les dépôts de/etc/apt/sources.list.d
, j'avais encore un paquet sur la gauche:libvpx0
. I « réparé » cela suit que: retirer la bibliothèque dpkg, en ignorant les dépendances:sudo dpkg --ignore-depends=libvpx0 --remove libvpx0
. Ensuite, installez - le à nouveau de la pension principale:sudo apt-get install libvpx0
.sudo apt-get install libvpx0=$version_string
, en supposant que les deux packages disponibles ont des chaînes de version différentes.apt-cache policy $(dpkg -l | awk '/^ii/{print $2}') > policy.txt; awk '!/^ /{pkg=$1}check{print pkg, $2;check=0}/\*\*\*/{check=1} ' policy.txt | grep -v archive.ubuntu
est un bon début (ajoutez-en plusgrep -v
pour exclure certains PPA). Les versions de package qui ne sont connues dans aucun référentiel s'affichent sous la forme/var/lib/dpkg/status
.Découvrez ppa-purge .
Usage:
Le serveur hôte par défaut est
ppa.launchpad.net
.Voici le lien vers la page de manuel de la
ppa-purge
commande pour référence.la source
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 deppa-purge
est d'utiliseraptitude
pour rétrograder les packages.Heureusement,
ppa-purge
accepte le-i
drapeau qui lui fait préférerapt-get
àaptitude
comme backend. Comme indiqué dans le rapport de bogue, l'utilisationapt-get
est une alternative efficace à l'invocation manuelleaptitude
, donc l'exécutionppa-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:
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, ilppaname
est remplacé par le nom de l'APP. Sinon, il est par défautppa
.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: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écutantppa-purge -h
(ou simplementppa-purge
sans argument):"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éreraptitude
àapt-get
, et le-i
drapeau renverse cette préférence.la source
ppa-purge
va pas supprimer ou les paquets de déclassement qui ne sont plus fournis par l'APP étant « purgé ». Cependant, vous voudrez peut-être publier une question distincte à ce sujet, pour obtenir une réponse plus fiable ou bien documentée.ppa:username/path
. De plus, le PPA doit être ACTIVÉ avant d'essayer de le purger, même si le script se désactive immédiatement après la mise à jour de la liste des packages à supprimer, il ne "trouvera" pas les PPA déjà désactivés.aptitude search ~o
pour trouver des packages orphelins sans source d'installation si vous avez besoin de purger quelque chose qui a été supprimé d'un PPA (ou qui a été installé comme un seul viadpkg -i
).Voici les moyens de le faire par GUI. J'espère que cela aiderait ceux qui ne préfèrent pas CLI. Les étapes sont simples et faciles à suivre.
Ouvrez le gestionnaire de packages synaptiques . S'il n'est pas installé, installez-le en:
Une fois ouvert, cliquez sur le bouton Origine en bas à gauche. Il répertorie tous les référentiels en haut à gauche. Sélectionnez le référentiel particulier pour lequel les packages doivent être supprimés. Il répertoriera tous les packages sous ce référentiel. Cliquez sur le premier champ i, e S ou champ Version installée pour afficher les packages installés en premier.
Sélectionnez maintenant tous les packages à supprimer.
Conseils pour marquer la suppression:
Sélectionnez le premier paquet, puis maintenez la Shifttouche enfoncée et sélectionnez à nouveau le dernier paquet pour tout sélectionner. Cliquez ensuite avec le bouton droit sur la case carrée et sélectionnez la marque pour la suppression ou la marque pour la suppression complète .
ou Sélectionnez un package et appuyez sur Ctrl+ Apour tout sélectionner. Cliquez ensuite avec le bouton droit de la souris sur la case carrée et choisissez Marque pour suppression ou Marque pour suppression complète.
C'est ça. Il se supprimera sans aucun problème. J'ai également joint l'image pour la rendre plus claire. J'espère que cela aiderait. :)
la source
Pour au moins les trouver, commencez par désactiver les PPA et exécutez
apt-get update
. Ensuite, installezapt-show-versions
. L'exécutionapt-show-versions | grep 'No available'
vous donnera alors une liste de tous vos packages installés qui ne peuvent pas être trouvés dans vos référentiels configurés. Avec un peu de magie en ligne de commande, vous pouvez probablement supprimer uniquement les noms des packages et les transmettre àapt-get remove
:Notez que cela va parcourir la liste renvoyée
apt-show-versions
et les supprimer un par un. Selon ce qu'il trouve, cela pourrait désinstaller quelque chose d'inattendu en raison de dépendances, alors vérifiez-le d'abord.la source
libvpx0
paquet du PPA au chrome quotidien. La réponse de @ enzotib a montré ce paquet.apt-show-versions
tant que non root, il a besoin d'unsudo apt-show-versions -i
pour mettre à jour son cache et voir les modifications des référentiels / PPA nouvellement supprimés (sinon il n'est mis à jour que via un travail cron.daily)J'ai trouvé que l'utilisation de la purge ppa était difficile.
Ouvrez Synaptic Package Manager sous Système, puis sélectionnez Paramètres, Référentiels.
Retirez ceux dont vous ne voulez pas.
Terminé!
la source