我的问题分为两个部分:


如何知道已安装的软件包的版本?
如何安装特定的软件包的版本?


评论

请不要投票删除该帖子。它可用作路标。复制品可以指导其他人进行正确的问答。

#1 楼

如何知道已安装软件包的版本?

apt-cache policy <package name>


以上命令将根据Ubuntu中的版本显示已安装的软件包版本以及存储库中的所有可用版本。

示例:

$ apt-cache policy gparted
gparted:
  Installed: 0.16.1-1
  Candidate: 0.16.1-1
  Version table:
 *** 0.16.1-1 0
        500 http://ubuntu.inode.at/ubuntu/ saucy/main amd64 Packages
        100 /var/lib/dpkg/status


因此安装的gparted版本是0.16.1-1

如何安装特定的软件包版本?

sudo apt-get install <package name>=<version>


示例:

$ sudo apt-get install gparted=0.16.1-1
Reading package lists... Done
Building dependency tree       
Reading state information... Done
gparted is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 265 not upgraded.


评论


您能否提供第二条命令的更多详细信息?有什么限制吗?例如,某人可以在12.04上安装13.10中可用的软件包版本吗?

–DK Bose
2014年3月3日在11:03

在适当的位置,按软件包名称上的Enter键将显示有关软件包的信息,并且在此屏幕的底部有可用版本的列表。

– karatedog
16-2-12在8:36

在每种情况下,我都尝试过以下错误:以下软件包具有未满足的依赖项:,其后是软件包列表。有什么方法可以使其自动解决吗?

–Hubro
16 Dec 5'在4:32

列出所有选项:apt list madison <程序包名称>

–FabricioFCarv
19年1月25日在13:48



@dualed apt将madison理解为,因此,如果该软件包不存在,它将不执行任何操作(您可以使用apt list asdasdas 对其进行测试)。您的命令是正确的-> apt列表-a

–马达加斯加
20-2-17在21:15



#2 楼

没有通用的方法来检查已安装软件包的版本,但是可以使用以下命令来检查其中的大多数软件包:例如,了解apache2的版本:

command -v 


但这可能不适用于其他软件包,因此最佳实践是搜索手册。

apache2 -v


,然后搜索显示版本的选项。

要安装软件包的特定版本:

man XXX


例如:

sudo apt-get install package=version


评论


我们还可以使用dpkg -l package-name检查已安装软件包的版本

– Nischay
2014年3月3日9:37



指定版本时,您在哪里找到/找到元2.3.35-4ubuntu1?

– Erutan409
16年5月23日在15:32

@ Erutan409您上方的评论是如何做到的。

–user124384
16年7月25日在17:03

@ Erutan409-使用apt-cache madison软件包名称-它会显示所有您可以通过已安装/配置的存储库查看的版本(包括PPA)

– ivanivan
18年4月14日在0:38

如果-v不起作用,您也可以尝试--version。

–MSpreij
19-09-13在11:15