我使用dpkg -l
命令来查找已安装的软件包的版本。例如:
dpkg -l network-manager
返回包装上的信息:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-=========================-=========================-==================================================================
ii network-manager 0.8.3~git.20101118t223039 network management framework daemon
如您所见,它返回0.8.3~git.20101118t223039
错误,因为它会截断版本(出于这个问题的目的,我选择了一个较长的版本)。我过去解决此问题的方法是传递一个愚蠢的COLUMNS参数以使其扩展:
COLUMNS=200 dpkg -l network-manager
这给了我完整的版本号,但也有很多垃圾:
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Description
+++-============================================-============================================-========================================================================================================
ii network-manager 0.8.3~git.20101118t223039.d60a988-0ubuntu1 network management framework daemon
现在,我可以看到完整的版本号,即0.8.3~git.20101118t223039.d60a988-0ubuntu1
。
我感到这不是查找已安装软件包的版本号的正确方法。过去这从来不是真正的问题,但是随着版本中“ ubuntu”的加入和PPA的增加,这些字符串变得越来越长。有更容易的方法吗?
dpkg --info package.deb
作品,尽管-s
没有