Lister les paquets issus d'un dépôt donné (typiquement backports)

Dans une distribution basée sur apt, on souhaite parfois pouvoir lister les paquets issus d'un dépôt particulier et ce typiquement pour éliminer les paquets de type backports (exemple utilisé ici). Les commandes de base d'apt permettent de le faire en construisant un script shell utilisant dpkg et apt-cache. On peut toutefois faire plus simple en exploitant le niveau d'abstraction (quoi que encore trop léger pour ce cas) de aptitude. La commande suivante permet de lister les paquets installés en reformattant le sortie pour qu'elle inclut le dépôt dont ils sont issus.

aptitude search ~i -F"%p %t %s"

Il nous faut encore, pour nous débarrasser de ceux appartenant au dépôt backports, faire un grep sur backports pour exclure les autres dépôts, récupérer la première colonne de la sortie pour n'avoir que le nom des paquets concernés à l'aide de cut, convertir la liste résultante (en colonne) en une liste sur une ligne avec les backquotes et enfin balancer la sortie dans un fichier texte :

echo `aptitude search ~i -F"%p %t %s"|grep backports|cut -d\  -f1 ` > liste_backports

Ceci fait, il en reste plus qu'à faire un apt-get remove sur cette liste de paquets, repérer les paquets supprimés dont l'on a besoin, puis les installer à nouveau par un simple apt-get install. C'est un poil laborieux mais je n'ai rien trouvé de plus simple pour annuler l'installation de backports. Si vous avez plus simple merci de laisser des commentaires et je mettrai le billet à jour en conséquence.

Pour les fans de commandes sympa je vous invite à lire cet autre billet plus... léger.

Ajouter un commentaire

Le code HTML est affiché comme du texte et les adresses web sont automatiquement transformées.

Haut de page