Como obtenho a versão de um aplicativo na linha de comando?

20

Gostaria de saber como obter as informações da versão de um programa instalado que não possui o

--version ou -version

método implementado.

Paradiesstaub
fonte
Eu sei que você se refere a qualquer programa, mas você pode dizer qual programa exatamente?

Respostas:

22

Você pode usar dpkgou apt-cache.

Para verificar a versão de bash, por exemplo:

dpkg -l bash

apt-cache show bash
Pantera
fonte
Para aqueles que procuram respostas gerais para o Linux, o equivalente ao acima para RHEL / CentOS / Fedora (e similares) seria, yum requires <file>por exemplo yum requires ssh-keygen, daria a sua versão do openSSH.
precisa saber é o seguinte
1
@SeldomNeedy - o yum é depreciado no Fedora, o Fedora usa o dnf. Centos / RHEL ainda estão no yum.
Panther
7

Se o programa não tiver nenhuma opção de linha de comando que exiba informações sobre a versão, você pode tentar usar dpkga versão do pacote que geralmente contém a versão do programa de alguma forma.

dpkg -S "$(which YOUR_PROGRAM)"

imprime o pacote que contém YOUR_PROGRAM e

dpkg --status YOUR_PACKAGE | grep ^Version

imprime a versão do YOUR_PACKAGE.

Você pode juntar tudo:

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

Use-o por exemplo como este para ls:

dpkg --status "$(dpkg -S "$(which ls)"| cut -d: -f1)"| grep ^Version
Florian Diesch
fonte
1
Como sugestão. Coloque tudo em uma função e carregue-o quando o shell iniciar.
Zoke
1

Você pode usar dpkg-querypara obter a versão de um pacote:

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

Para obter apenas a string da versão:

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

O comando abaixo também fornece a versão exata do pacote instalado.

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

Exemplo

$ 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
fonte