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.


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

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

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

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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.