Я хотел бы знать, как получить информацию о версии установленной программы, которая не имеет
blockquote>
--version
или-version
метод реализован.
Вы можете использовать dpkg
или apt-cache
.
Чтобы проверить версию bash
, например:
dpkg -l bash
apt-cache show bash
Вы можете использовать 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
Если в программе нет какой-либо опции командной строки, отображающей информацию о версии, вы можете попытаться использовать 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
yum requires <file>
, например,yum requires ssh-keygen
даст Вам Вашу openSSH версию. – Shruti 18.05.2020, 07:36