Chciałbym wiedzieć, jak uzyskać informacje o wersji zainstalowanego programu, który nie ma
--version
lub-version
zaimplementowana metoda.
Chciałbym wiedzieć, jak uzyskać informacje o wersji zainstalowanego programu, który nie ma
--version
lub-version
zaimplementowana metoda.
Odpowiedzi:
Możesz użyć dpkg
lub apt-cache
.
Aby sprawdzić wersję bash
, na przykład:
dpkg -l bash
apt-cache show bash
yum requires <file>
np. yum requires ssh-keygen
Dałoby ci twoją wersję openSSH.
Jeśli program nie ma żadnej opcji wiersza polecenia wyświetlającej informacje o wersji, możesz spróbować użyć dpkg
tej wersji pakietu, która zwykle zawiera wersję programu.
dpkg -S "$(which YOUR_PROGRAM)"
wypisuje paczkę zawierającą YOUR_PROGRAM i
dpkg --status YOUR_PACKAGE | grep ^Version
drukuje wersję YOUR_PACKAGE.
Możesz to wszystko połączyć:
dpkg --status "$(dpkg -S "$(which YOUR_PROGRAM)" | cut -d: -f1)" | grep ^Version
Użyj go na przykład w następujący sposób ls
:
dpkg --status "$(dpkg -S "$(which ls)"| cut -d: -f1)"| grep ^Version
Możesz użyć, dpkg-query
aby uzyskać wersję pakietu:
$ dpkg-query -W -f='${binary:Package} ${Version}\n' firefox
firefox 29.0+build1-0ubuntu0.13.10.3
Aby uzyskać tylko ciąg wersji:
$ dpkg-query -W -f='${Version}\n' firefox
29.0+build1-0ubuntu0.13.10.3
Poniższe polecenie podaje również dokładnie zainstalowaną wersję pakietu.
apt-cache policy <package-name> | grep Installed: | cut -d: -f2
Przykład
$ 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