Я хотел бы знать, как получить информацию о версии установленной программы, которая не имеет
--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