Я хотел бы знать, как получить информацию о версии установленной программы, которая не имеет реализованного метода
--version или -version.
Если у программы нет опции командной строки, которая отображает информацию о версии, вы можете попытаться использовать dpkg, чтобы получить версию пакета, которая обычно содержит версию программы иона.
dpkg -S "$(which YOUR_PROGRAM)"
[d1 ] печатает пакет, содержащий 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