Comment obtenir la version d'une application à partir de la ligne de commande?

20

Je voudrais savoir comment obtenir les informations de version d'un programme installé qui n'a pas le

--version ou -version

méthode mise en œuvre.

Paradiesstaub
la source
Je sais que vous voulez dire pour n'importe quel programme, mais pouvez-vous dire quel programme exactement?

Réponses:

22

Vous pouvez utiliser dpkgou apt-cache.

Pour vérifier la version de bash, par exemple:

dpkg -l bash

apt-cache show bash
Panthère
la source
Pour ceux qui recherchent simplement des réponses Linux générales, l'équivalent de ce qui précède pour RHEL / CentOS / Fedora (et similaire) serait yum requires <file>par exemple yum requires ssh-keygenvous donnerait votre version openSSH.
SeldomNeedy
1
@SeldomNeedy - yum est amorti sur Fedora, Fedora utilise dnf. Centos / RHEL toujours sur miam.
Panther
7

Si le programme n'a pas d'option de ligne de commande qui affiche des informations sur la version, vous pouvez essayer d'utiliser dpkgla version du package qui contient généralement la version du programme d'une manière ou d'une autre.

dpkg -S "$(which YOUR_PROGRAM)"

imprime le package qui contient YOUR_PROGRAM, et

dpkg --status YOUR_PACKAGE | grep ^Version

imprime la version de YOUR_PACKAGE.

Vous pouvez tout rassembler:

dpkg --status "$(dpkg -S "$(which YOUR_PROGRAM)" | cut -d: -f1)" | grep ^Version

Utilisez-le par exemple comme ceci pour ls:

dpkg --status "$(dpkg -S "$(which ls)"| cut -d: -f1)"| grep ^Version
Florian Diesch
la source
1
Comme suggestion. Mettez tout cela dans une fonction et chargez-le lorsque votre shell démarre.
Zoke
1

Vous pouvez utiliser dpkg-querypour obtenir la version d'un package:

$ dpkg-query -W -f='${binary:Package} ${Version}\n' firefox
firefox 29.0+build1-0ubuntu0.13.10.3

Pour obtenir uniquement la chaîne de version:

$ dpkg-query -W -f='${Version}\n' firefox
29.0+build1-0ubuntu0.13.10.3
Sylvain Pineau
la source
0

La commande ci-dessous vous donne également la version exacte du package installé.

apt-cache policy <package-name> | grep Installed: | cut -d: -f2

Exemple

$ apt-cache policy firefox | grep Installed: | cut -d: -f2
24.0+build1-0ubuntu1

$ apt-cache policy gedit | grep Installed: | cut -d: -f2
3.8.3-0ubuntu3
Avinash Raj
la source