如何从命令行获取应用程序的版本?


20

我想知道如何获取没有安装的程序的版本信息

--version 要么 -version

方法实现。


我知道您的意思是任何程序,但是您能准确地说出哪个程序吗?

Answers:


22

您可以使用dpkgapt-cache

要检查的版本bash,例如:

dpkg -l bash

apt-cache show bash

对于那些只希望获得通用Linux答案的人,相当于上述RHEL / CentOS / Fedora(及类似产品)的版本,yum requires <file>例如,yum requires ssh-keygen将为您提供openSSH版本。
SeldomNeedy

1
@SeldomNeedy-yum在Fedora上已贬值,Fedora使用dnf。Centos / RHEL仍在运行。
Panther

7

如果程序没有任何显示版本信息的命令行选项,则可以尝试使用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

1
作为建议。将其全部放入函数中,并在外壳启动时加载它。
Zoke 2012年

1

您可以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

0

以下命令还为您提供了确切的已安装软件包版本。

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.