Comment répertorier tous les packages installés avec des numéros de version spécifiques?

27

Je voudrais lister tous les packages installés, avec des numéros de version spécifiques sur mon système. J'ai vérifié dpkg --get-selections( Comment lister tous les packages installés ) mais cela ne me montre pas ce dont j'ai besoin. Par exemple:

$ dpkg --get-selections apache2
apache2                                         install

montre qu'apache2 est installé, mais pas la version. J'ai récemment fait un apt-get upgradedonc apache2.2.22-1 devrait être installé ( http://packages.ubuntu.com/precise-updates/apache2.2-common ), mais comment puis-je le montrer?

Merci!

user2133697
la source

Réponses:

35

Utilisez dpkg -lplutôt.

Exemple:

dpkg -l | grep '^ii' | grep skype

Produit ceci:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype
ii skype 4.2.0.11-0ubuntu0.12.04.2 client i386 pour Skype VOIP ...

Si vous souhaitez uniquement extraire le nom et la version, vous pouvez le faire:

dpkg -l | grep '^ii' | grep skype | awk '{print $2 "\t" $3}'

Qui n'imprimera que la deuxième et la troisième colonne de la sortie ci-dessus, comme ceci:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype | awk '{print $ 2 "\ t" $ 3}'
skype 4.2.0.11-0ubuntu0.12.04.2

Bien sûr, si vous souhaitez répertorier tous vos packages installés avec leurs versions, et pas seulement Skype, supprimez simplement la grep skypepartie pour créer la commande comme ceci:

dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'
Alaa Ali
la source
J'ai remarqué que dpkg -l tronçonnait les numéros de version s'ils dépassaient 21 caractères, et comme toutes les versions de packages, ils font 22 caractères. :(
ThorSummoner
12

Utilisation

dpkg-query --show apache2

pour obtenir le numéro de version du package apache2et

dpkg-query --show 

pour obtenir les numéros de version de tous les packages installés

Florian Diesch
la source
1
Votre solution m'a donné ~ 20% de packages en plus dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'. Savez-vous quelle est la différence?
Thomas Jensen
3
@Thomas Jensen: Merci d'avoir repéré cela. dpkg-query --shown'affiche en fait pas les packages installés , mais ceux qui ne sont pas installés . C'est-à-dire qu'il montre par exemple des packages à moitié installés ou des packages avec les fichiers de configuration restants.
Florian Diesch