Rétrograder un tas de packages

11

Vous avez peut-être installé des packages à partir d'un PPA ou d'une source externe (par exemple, téléchargé un .deb pour un package disponible via le dépôt Ubuntu).
Ensuite, vous décidez de supprimer ces versions mises à niveau en faveur des référentiels officiels.
La première étape consiste à supprimer les entrées du sources.list.

Existe-t-il un moyen de rétrograder tout vers la version la plus élevée disponible? Je sais que vous pouvez installer des versions spécifiques avec

apt-get install [package] = [version]
Mais pouvez-vous tout rétrograder?

Manuel
la source
Voulez-vous dire une commande pour supprimer les applications PPA actuelles, puis installer celles du référentiel officiel? Je ferais quelque chose comme sudo apt-get -y remove package1 package2 package3 && sudo apt-get install package1 package2 package3- je ne crois pas qu'il y ait une seule commande comme sudo apt-get repocleanpar exemple pour le faire.
kingmilo
Je dois donc obtenir tous les packages que j'ai installés à partir du dépôt? Il n'y a pas de mise à niveau vers la version la plus élevée disponible (c'est quelque chose que vous pouvez faire avec openSUSEs zypper).
Manuel
Si vous supprimez le référentiel et que le package est disponible dans le référentiel officiel et que ce package est une version supérieure à celle qui était disponible dans le référentiel que vous avez ajouté, ce package sera mis à niveau vers la version disponible dans le référentiel officiel.
kingmilo
1
Oui, mais sinon? La mise à niveau ne pose aucun problème, mais la rétrogradation.
Manuel

Réponses:

16

Un peu tard pour la fête mais j'ai trouvé cette question en cherchant une réponse et maintenant j'ai ma propre réponse à partager.

Je pense que vous pouvez le faire via le monde mystérieux d'apt_preferences.

Essayez de créer un fichier appelé / tmp / a_p (ou autre) comme ça ...

Package: *
Pin: release a=*-backports
Pin-Priority: 100

Package: *
Pin: release n=*
Pin-Priority: 1001

Exécutez ensuite:

sudo apt-get -o Dir::Etc::Preferences=/tmp/a_p dist-upgrade

La deuxième section du fichier fait essentiellement ce que l'OP a demandé, en ce sens qu'elle augmente la priorité de tous les packages dans n'importe quel dépôt en direct pour les faire installer même si cela signifie une rétrogradation.

La première section empêche la deuxième section de déclencher l'installation de tous les rétroportages. Vous pouvez ou non vous en soucier ou le vouloir. Je suggère de bricoler pour voir ce qui fonctionne. Vous pouvez utiliser apt-cache -o Dir::Etc::Preferences=/tmp/a_p policy somepkgpour voir quel effet le fichier a_p a sur des packages spécifiques.

TIM

user156743
la source
6

Ok, que se passe-t-il s'il est trouvé le script ppa-purge

Si vous avez ajouté un PPA et un logiciel mis à niveau, vous pouvez supprimer le dépôt et à cette étape rétrograder tous les packages qui ont été mis à niveau avec

ppa-purge [nom du dépôt]

Est-ce utile pour une autre personne?

Mais il est toujours ouvert si vous pouvez installer la version la plus élevée disponible même si la version installée est supérieure ...

Manuel
la source