Я хотів би знати, як отримати інформацію про версію встановленої програми, яка не має
--version
або-version
реалізований метод.
Я знаю, ви маєте на увазі будь-яку програму, але чи можете ви сказати, яку саме програму?
Я хотів би знати, як отримати інформацію про версію встановленої програми, яка не має
--version
або-version
реалізований метод.
Відповіді:
Ви можете використовувати dpkg
або apt-cache
.
Для перевірки версії bash
, наприклад:
dpkg -l bash
apt-cache show bash
yum requires <file>
наприклад yum requires ssh-keygen
, дасть вам вашу версію openSSH.
Якщо в програмі немає жодної опції командного рядка, яка відображає інформацію про версію, ви можете спробувати використати 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
Ви можете використовувати 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
Наведена нижче команда також дає точну встановлену версію пакета.
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