Как я могу получить версию приложения из командной строки?


20

Я хотел бы знать, как получить информацию о версии установленной программы, которая не имеет

--version или -version

метод реализован.


Я знаю, что вы имеете в виду для любой программы, но можете ли вы сказать, какая именно программа?

Ответы:


22

Вы можете использовать dpkgили apt-cache.

Чтобы проверить версию bash, например:

dpkg -l bash

apt-cache show bash

Для тех, кто только ищет общие ответы по Linux, эквивалентный приведенному выше для RHEL / CentOS / Fedora (и тому подобное), yum requires <file>например yum requires ssh-keygen, даст вам вашу версию openSSH.
SeldomNeedy

1
@SeldomNeedy - ням амортизируется в Fedora, Fedora использует dnf. Centos / RHEL по-прежнему на вкус.
Пантера

7

Если в программе нет какой-либо опции командной строки, которая отображает информацию о версии, вы можете попытаться использовать ее dpkgдля получения версии пакета, которая обычно каким-либо образом содержит версию программы.

dpkg -S "$(which YOUR_PROGRAM)"

печатает пакет, содержащий YOUR_PROGRAM, и

dpkg --status YOUR_PACKAGE | grep ^Version

печатает версию YOUR_PACKAGE.

Вы можете собрать все это вместе:

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

Используйте его, например, так ls:

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

1
В качестве предложения. Поместите все это в функцию и загрузите ее при запуске вашей оболочки.
Зоке

1

Вы можете использовать dpkg-queryдля получения версии пакета:

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

Чтобы получить только строку версии:

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

0

Команда ниже также дает вам точную версию установленного пакета.

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

пример

$ 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
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.