Як отримати версію програми з командного рядка?


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 - yum амортизується у 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.