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

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

--version или -version

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

19
задан 18.05.2020, 07:33

4 ответа

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

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

dpkg -l bash

apt-cache show bash
21
ответ дан 18.05.2020, 07:35
  • 1
    @SeldomNeedy - конфетка обесценивается на Fedora, Fedora использует dnf. Centos/RHEL все еще на конфетке. – Manoj Perumarath 18.05.2020, 07:35
  • 2
    Для тех, которые просто ищут общие ответы Linux, эквивалент вышеупомянутому для RHEL/CentOS/Fedora (и подобный) был бы yum requires <file>, например, yum requires ssh-keygen даст Вам Вашу openSSH версию. – Shruti 18.05.2020, 07:36

Вы можете использовать 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
1
ответ дан 18.05.2020, 07:33

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

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
0
ответ дан 18.05.2020, 07:34

Если в программе нет какой-либо опции командной строки, отображающей информацию о версии, вы можете попытаться использовать 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
7
ответ дан 18.05.2020, 07:35
  • 1
    Как предложение. Выразитесь в функции и загрузите ее, когда Ваша оболочка запустится. – MAD 18.05.2020, 07:36

Теги

Похожие вопросы