J'ai installé un paquet JDK sur mon Ubuntu 14.04 il y a quelques mois, mais je ne sais pas comment vérifier de quelle version il s'agit.
Alors, comment puis-je savoir si un paquet est installé sur Ubuntu et quelle version de celui-ci est installée?
TL; DR: Pour une commande simple (no | grep
) avec une sortie compacte, vous pouvez utiliser
apt list package
, qui correspond généralement à ce que vous souhaitez (par rapport à apt-cache policy package
), ou dpkg-query -W package
en tant que version moins encombrée de dpkg -l package
</ em> </ code>
.La commande apt
(pour apt list package
) est disponible dans Ubuntu 14.04 et versions ultérieures.
apt list
vous indique si votre paquet est installé.apt list package
affiche la version d'un package installé ou sur le point d'être installé, ainsi que les noms des composants du référentiel qui le fournissent et la version. Lorsque le package est installé, [installed]
apparaît en évidence à la fin de la ligne.
ek@Io:~$ apt list firefox
Listing... Done
firefox/xenial-updates,xenial-security,now 51.0.1+build2-0ubuntu0.16.04.1 AMD64 [installed]
N: There is 1 additional version. Please use the '-a' switch to see it
Outre [installed]
à la fin, now
dans la liste des composants du référentiel indique que le package est actuellement installé. Voici à quoi ressemble le résultat de apt list
pour un paquetage non installé :
ek@Io:~$ apt list dolphin
Listing... Done
dolphin/xenial 4:15.12.3-0ubuntu1 AMD64
Parfois, vous verrez [installed,automatic]
, ce qui signifie que le paquet a été installé en tant que dépendance d'un autre paquet. Comme il a été installé automatiquement plutôt que manuellement, il peut être supprimé une fois que tous les packages qui en dépendent sont supprimés (comme le fait la commande apt autoremove
).
ek@Io:~$ apt list zeitgeist-core
Listing... Done
zeitgeist-core/xenial,now 0.9.16-0ubuntu4 AMD64 [installed,automatic]
apt list --installed
pour afficher uniquement les packages installés.Un des avantages de voir une liste même lorsque le package n’est pas installé est que vous savez que est un package du nom que vous avez spécifié. Sinon, si vous l'orthographiez mal par accident, vous pourriez penser que le paquet que vous vouliez dire n'est pas installé.
ek@Io:~$ apt list firefoz
Listing... Done
Mais si vous préférez vraiment que rien n'apparaisse si vous n'avez pas de paquet, utilisez apt list --installed package
:
ek@Io:~$ apt list --installed firefox dolphin
Listing... Done
firefox/xenial-updates,xenial-security,now 51.0.1+build2-0ubuntu0.16.04.1 AMD64 [installed]
N: There is 1 additional version. Please use the '-a' switch to see it
Comme vous venez de le voir, vous pouvez transmettre plusieurs noms de package à apt list
. L'autre chose que vous pouvez faire est de le passer a glob , où *
représente zéro ou plusieurs caractères et ?
représente un caractère. Il y a quelques points à garder à l'esprit:
'
'
ou "
"
ou avec \
) lorsque vous les transmettez à apt list
.[csz]sh
correspond à csh
, ssh
zsh
), ils ne sont pas identiques et *
et ?
signifient des choses différentes dans un glob que dans une expression régulière. Ceci est important car d'autres commandes utilisées pour obtenir des informations sur les packages, telles que apt-cache policy package
, utilisent des expressions régulières plutôt que des globs. Vous devriez vérifier si une commande utilise des expressions globales ou régulières avant en s'appuyant sur l'une ou l'autre fonctionnalité.apt list 'wine*'
listes tous les paquets dont le nom commence par wine
, mais apt remove 'wine*'
supprime tous les paquets avec win
(même sans le e
) n'importe où dans leur nom!Supposons, par exemple, que je connaisse le paquet qui m'intéresse et que son nom porte soap
et qu'il se termine par cil
, mais c'est tout ce dont je me souviens:
ek@Io:~$ apt list '*soap*cil'
Listing... Done
libmono-system-runtime-serialization-formatters-soap4.0-cil/xenial,xenial,now 4.2.1.102+dfsg2-7ubuntu4 all [installed,automatic]
Globbing est également utile lorsque vous connaissez le nom complet du paquet qui vous intéresse, mais que vous ne voulez pas le taper. Ou lorsque plusieurs packages correspondant au glob vous intéressent:
ek@Io:~$ apt list 'firefox-locale-*'
Listing... Done
firefox-locale-af/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-an/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ar/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-as/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ast/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-az/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-be/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-bg/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-bn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-br/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-bs/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ca/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-cak/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-cs/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-csb/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-cy/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-da/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-de/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-el/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-en/xenial-updates,xenial-security,now 51.0.1+build2-0ubuntu0.16.04.1 AMD64 [installed]
firefox-locale-eo/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-es/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-et/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-eu/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-fa/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-fi/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-fr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-fy/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ga/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-Gd/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-gl/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-gn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-gu/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-he/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hi/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hsb/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hu/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-hy/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-id/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-is/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-it/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ja/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ka/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-kab/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-kk/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-km/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-kn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ko/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ku/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-lg/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-lt/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-lv/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-mai/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-mk/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ml/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-mn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-mr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ms/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-nb/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-nl/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-nn/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-nso/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-oc/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-or/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-pa/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-pl/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-pt/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ro/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ru/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-si/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sk/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sl/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sq/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sv/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-sw/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-ta/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-te/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-th/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-tr/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-uk/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-uz/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-vi/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-xh/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-zh-hans/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-zh-hant/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
firefox-locale-zu/xenial-updates,xenial-security 51.0.1+build2-0ubuntu0.16.04.1 AMD64
Cela fait beaucoup de paquets. (Bien que pas autant que si j'avais exécuté apt list '*'
, qui répertorie tous les paquets disponibles!) Heureusement, les globs fonctionnent aussi avec --installed
:
ek@Io:~$ apt list --installed 'firefox-locale-*'
Listing... Done
firefox-locale-en/xenial-updates,xenial-security,now 51.0.1+build2-0ubuntu0.16.04.1 AMD64 [installed]
N: There is 1 additional version. Please use the '-a' switch to see it
apt list
vs. dpkg-query -W
Une autre commande que vous pouvez utiliser est dpkg-query -W package
. Ceci est similaire à dpkg -l
, mais sa sortie est plus simple et lisible, car seuls le nom du package et la version installée (le cas échéant) sont imprimés.
dpkg-query -W
liste tous les paquets que dpkg
sait qui correspond au nom ou au motif global que vous lui donnez. Cela inclut les packages installés et les packages qui ne le sont pas, mais auxquels un autre package fait référence. Vous pouvez savoir quels paquets sont réellement installés car le numéro de version/la chaîne installée est imprimée à la droite du nom. Par exemple, sur mon système 16.04:
ek@Io:~$ dpkg-query -W wine-\*
wine-AMD64
wine-gecko
wine-gecko2.21:AMD64 2.21-0ubuntu1
wine-gecko2.21:i386 2.21-0ubuntu1
wine-i386
wine-mono
wine-mono0.0.8 0.0.8-0ubuntu1
Ainsi, des packages listés, wine-gecko2.21:AMD64
et wine-gecko2.21:i386
(c'est-à-dire wine-gecko2.21
pour les architectures AMD64
et i386
) et wine-mono0.0.8
sont ceux que j'ai actuellement installés.
dpkg-query -W
et apt list
seront toujours au courant des packages installés, qu'ils soient fournis ou non par une source logicielle actuellement configurée et qu'ils soient ou non référencés par d'autres packages. Toutefois:
apt list
connaît également les packages disponibles à partir de toute source logicielle actuellement configurée, mais pas des packages indisponibles auxquels d'autres packages font référence.dpkg-query -W
(comme dpkg -l
) ne reflète pas directement les packages réellement disponibles, mais connaît les packages référencés par tous les packages installés.Sur la même machine:
ek@Io:~$ apt list wine-\*
Listing... Done
wine-development/xenial,xenial 1.9.6-1 all
wine-gecko2.21/xenial,now 2.21-0ubuntu1 AMD64 [installed,automatic]
wine-mono0.0.8/xenial,xenial,now 0.0.8-0ubuntu1 all [installed,automatic]
Comme avec dpkg -l
, lorsque vous exécutez dpkg-query -W
avec le nom d'un paquet que vous n'avez pas (par exemple, je n'ai pas installé chocolate-Doom
), la sortie est la même que lorsque vous l'exécutez avec le nom d'un paquet qui ne le fait pas. t n’existe pas du tout (par exemple, à cause de fautes d’orthographe, comme firefoz
):
ek@Io:~$ dpkg-query -W chocolate-Doom firefoz
dpkg-query: no packages found matching chocolate-Doom
dpkg-query: no packages found matching firefoz
En revanche, apt list
indique explicitement que seul chocolate-Doom
existe (mais n’est pas installé):
ek@Io:~$ apt list chocolate-Doom firefoz
Listing... Done
chocolate-Doom/xenial 2.2.1-2.1 AMD64
Dans un terminal, exécutez dpkg -l | grep <name or pattern>
. Par exemple,
dpkg -l | grep firefox
ii firefox 51.0.1+build2-0ubuntu0.14.04.2 AMD64
Le nom ii
signifie qu'il est installé. Évidemment, s'il n'y a pas de sortie, le paquet n'est pas installé.
Si vous connaissez le nom du paquet, utilisez la règle apt-cache
:
$ apt-cache policy firefox | grep 'Installed:'
Installed: 51.0.1+build2-0ubuntu0.16.04.1
$ apt-cache policy golang | grep 'Installed:'
Installed: (none)
Si vous ne le faites pas, utilisez dpkg --get-selections | grep 'jdk'
$ dpkg --get-selections | grep 'jdk'
jdk1.8.0-111 deinstall
openjdk-7-jre-headless:AMD64 deinstall
openjdk-8-jdk:AMD64 install
openjdk-8-jdk-headless:AMD64 install
openjdk-8-jre:AMD64 install
openjdk-8-jre-headless:AMD64 install
openjdk-9-jre-headless:AMD64 deinstall
Utilisez commande dpkg, gestionnaire de paquets pour Debian.
>dpkg -s /package name/
Utilisez fichier/var/lib/dpkg/available pour connaître tous les noms de paquetages disponibles.
Ou vous pouvez utiliser la commande suivante (elle répertorie tous les packages dans /var/lib/dpkg/status ):
>dpkg-query -l
Vous pouvez également essayer de faire correspondre le nom du paquet en utilisant caractères génériques:
>dpkg-query -l 'libc6*'