Comment puis-je lister tous les paquets que j'ai installés à partir d'un référentiel particulier?
Comment puis-je lister tous les paquets installés qui ne sont pas disponibles dans les archives principales d'Ubuntu, et aussi voir de quels référentiels ils proviennent? (Si je connaissais la réponse à cette question, je pourrais consulter cette liste pour un nom particulier de PPA afin de connaître la réponse à ma première question.)
Développez l'élément "Logiciels installés" dans le Centre logiciel Ubuntu. Vous verrez une liste de tous les différents référentiels que vous avez activés. En cliquant sur le dépôt vous montrera les paquets que vous avez installés à partir de chacun.
Il semble n'y avoir aucun enregistrement de l'origine d'un paquet installé.
Si vous voulez bien obtenir l’emplacement à partir duquel un paquet du même nom serait téléchargé, il est disponible via apt-cache policy
. Le script suivant (plutôt moche) me convient:
LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
| fgrep ':install ok installed' \
| cut -d: -f1 \
| (while read pkg; do
inst_version=$(apt-cache policy $pkg \
| fgrep Installed: \
| awk '{ print $2 }');
Origin=$(apt-cache policy "$pkg" \
| fgrep " *** ${inst_version}" -C1 \
| tail -n 1 \
| cut -c12-);
echo $pkg $Origin;
done)
Notez qu'il est assez fragile, car il émet des hypothèses sur la sortie de apt-cache policy
, qui pourrait changer d'une version à l'autre ...
Ouvrez le gestionnaire de paquets Synaptic et cliquez sur le bouton "Origine" en bas à gauche de la barre latérale. Il listera vos sources. Sélectionnez une source pour voir les packages disponibles/installés.
Ce script répertorie les packages installés et disponibles dans PPA:
#!/bin/sh
# Give PPA name as an argument, e.g. ppa:oibaf/graphics-drivers
name1="$(echo "$1"|cut -d: -f2|cut -d/ -f1)"
name2="$(echo "$1"|cut -d/ -f2)"
awk '$1 == "Package:" { if (a[$2]++ == 0) print $2; }' \
/var/lib/apt/lists/*"$name1"*"$name2"*Packages |
xargs dpkg-query -W -f='${Status} ${Package}\n' 2>/dev/null | awk '/^[^ ]+ ok installed/{print $4}'
J'ai appliqué this .
BTW En ce qui concerne le retrait du PPA, utilisez le programme ppa-purge; J'ai créé une version améliorée de celui-ci ici .
Sous Quantal (12.10), l’espace de la ligne Origine doit être supprimé.
LC_ALL=C dpkg-query --showformat='${Package}:${Status}\n' -W '*' \
| fgrep ':install ok installed' \
| cut -d: -f1 \
| (while read pkg; do
inst_version=$(apt-cache policy $pkg \
| fgrep Installed: \
| cut -d: -f2-);
Origin=$(apt-cache policy "$pkg" \
| fgrep " ***${inst_version}" -C1 \
| tail -n 1 \
| cut -c12-);
echo $pkg $Origin;
done)