如何使用 apt-get / aptitude 检查软件包版本?

494 aptitude apt package-management

在我安装软件包之前,我想知道我会得到什么版本。

在使用apt-getaptitude在 Debian 或 Ubuntu 上安装之前,如何检查版本?

wag*_*wag 605

apt-get

您可以运行模拟以查看升级/安装软件包时会发生什么:

apt-get -s install <package>
Run Code Online (Sandbox Code Playgroud)

要查看所有可能的升级,请upgrade在详细模式下运行 a并(为了安全)进行模拟,按n取消:

apt-get -V -s upgrade
Run Code Online (Sandbox Code Playgroud)

缓存

该选项policy可以显示软件包的已安装和远程版本(安装候选)。

apt-cache policy <package>
Run Code Online (Sandbox Code Playgroud)

apt-show-versions

如果已安装,则显示有关一个或多个软件包的版本信息:

apt-show-versions <package>
Run Code Online (Sandbox Code Playgroud)

传递-u带或不带包名称的开关只会显示可升级的包。

资质

控制台 GUIaptitude可以显示具有新版本的可升级包。打开菜单“可升级包”。按下v一个包将显示更详细的版本信息。

或者在命令行上:

aptitude versions <package>
Run Code Online (Sandbox Code Playgroud)

通过-V将显示有关版本的详细信息,再次使用模拟开关是安全的:

aptitude -V -s install <package>
Run Code Online (Sandbox Code Playgroud)

替换install <package>withupgrade将显示所有可升级包的版本。

  • “程序 'apt-show-versions' 当前尚未安装。您可以通过键入.. 来安装它。” (12认同)
  • `apt show &lt;packages&gt;` 也可以添加到列表中 (8认同)

小智 65

另一种使用dpkggrep 的方法

dpkg -s <package> | grep Version
Run Code Online (Sandbox Code Playgroud)

  • 当 &lt;package&gt; 尚未安装(这是问题中的要求)时,这不起作用。 (18认同)

小智 22

如果您不知道软件包的全名,另一种选择是格式化 aptitude 的搜索输出:

aptitude search <package> -F "%c %p %d %V"
Run Code Online (Sandbox Code Playgroud)

%c= 状态(包安装与否)
%p= 包的名称
%d= 包的描述
%V= 可用包的版本

参考:http : //linux.die.net/man/8/aptitude


小智 13

获取包名:

apt-cache search *search term*
Run Code Online (Sandbox Code Playgroud)

要获取版本详细信息:

apt-cache show *packagename*
Run Code Online (Sandbox Code Playgroud)

我相信apt-get并且apt-cache正在被弃用,aptaptitude成为首选方法。鉴于 apt-suite 的使用寿命,它可能是未来一段时间的安全赌注!


小智 9

你可以写 apt show <package>


小智 5

在安装之前查看最新的可用软件包。执行更新,以便您拥有所有最新的软件包更新。

$sudo apt-get update
Run Code Online (Sandbox Code Playgroud)

现在,要在安装之前检查存储库中可用的最新软件包,请运行以下命令。

$apt-cache show <package name>
Run Code Online (Sandbox Code Playgroud)

例子:

$apt-cache show latexila
Run Code Online (Sandbox Code Playgroud)

或者

$apt-cache show npm
Run Code Online (Sandbox Code Playgroud)