在使用apt-get安装软件包之前如何检查版本


181

我正在考虑安装上个月在我的Debian PC 上发布的hylafax +版本5.5.4 。

我检查dpkg -l | grep "hylafax"发现当前版本为5.5.3。然后,我检查apt-cache search hylafax并查看了可用的软件包,但是看不到任何版本号。

如何在中找到可用的软件包版本apt-get


1
在Unix和Linux堆栈交流同一个问题:unix.stackexchange.com/questions/6284/...
法比奥说恢复莫妮卡

Answers:


309

好的,我找到了。

apt-cache policy <package name> 将显示版本详细信息。

它还显示了当前安装的版本以及可以安装的版本。

例如, apt-cache policy hylafax+


3
不能相信这没有显示apt install,给你一个机会在说之前复习版本Y
本杰明

如果我们使用apt install某些软件包(可能未安装),则直接安装。因此,我认为对于新Linux用户而言,更好地使用它apt policy
Yasiru G

37

apt-cache policy <package-name>

$ apt-cache policy redis-server
redis-server:
  Installed: (none)
  Candidate: 2:2.8.4-2
  Version table:
     2:2.8.4-2 0
        500 http://us.archive.ubuntu.com/ubuntu/ trusty/universe amd64 Packages

apt-get install -s <package-name>

$ apt-get install -s redis-server
NOTE: This is only a simulation!
      apt-get needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  libjemalloc1 redis-tools
The following NEW packages will be installed:
  libjemalloc1 redis-server redis-tools
0 upgraded, 3 newly installed, 0 to remove and 3 not upgraded.
Inst libjemalloc1 (3.5.1-2 Ubuntu:14.04/trusty [amd64])
Inst redis-tools (2:2.8.4-2 Ubuntu:14.04/trusty [amd64])
Inst redis-server (2:2.8.4-2 Ubuntu:14.04/trusty [amd64])
Conf libjemalloc1 (3.5.1-2 Ubuntu:14.04/trusty [amd64])
Conf redis-tools (2:2.8.4-2 Ubuntu:14.04/trusty [amd64])
Conf redis-server (2:2.8.4-2 Ubuntu:14.04/trusty [amd64])

apt-cache show <package-name>

$ apt-cache show redis-server
Package: redis-server
Priority: optional
Section: universe/misc
Installed-Size: 744
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Chris Lamb <lamby@debian.org>
Architecture: amd64
Source: redis
Version: 2:2.8.4-2
Depends: libc6 (>= 2.14), libjemalloc1 (>= 2.1.1), redis-tools (= 2:2.8.4-2), adduser
Filename: pool/universe/r/redis/redis-server_2.8.4-2_amd64.deb
Size: 267446
MD5sum: 066f3ce93331b876b691df69d11b7e36
SHA1: f7ffbf228cc10aa6ff23ecc16f8c744928d7782e
SHA256: 2d273574f134dc0d8d10d41b5eab54114dfcf8b716bad4e6d04ad8452fe1627d
Description-en: Persistent key-value database with network interface
 Redis is a key-value database in a similar vein to memcache but the dataset
 is non-volatile. Redis additionally provides native support for atomically
 manipulating and querying data structures such as lists and sets.
 .
 The dataset is stored entirely in memory and periodically flushed to disk.
Description-md5: 9160ed1405585ab844f8750a9305d33f
Homepage: http://redis.io/
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Origin: Ubunt

dpkg -l <package-name>

$ dpkg -l nginx
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                   Architecture              Description
+++-========================================-=========================-=========================-=====================================================================================
ii  nginx                                    1.6.2-1~trusty            amd64                     high performance web server

2
请注意,dpkg -l仅列出已安装的软件包。提前查看版本没有用。
Tomasz Gandor

感谢apt-get install中的-s标志!:)
andymel


8

Linux Mint,Debian 9,Ubuntu 16.04和更低版本:

简短信息

apt policy <package_name>

详细信息(包括描述和取决于):

apt show <package_name>


3

另外,apt-show-versions软件包(单独安装)将分析dpkg有关已安装内容的信息,并告诉您软件包是否为最新版本。

例..

$ sudo apt-show-versions --regex chrome
google-chrome-stable/stable upgradeable from 32.0.1700.102-1 to 35.0.1916.114-1
xserver-xorg-video-openchrome/quantal-security uptodate 1:0.3.1-0ubuntu1.12.10.1
$

3

在debian上:

apt list --upgradable

给出包含软件包的列表,要升级的版本以及软件包的实际版本。

结果:

base-files/stable 8+deb8u8 amd64 [upgradable from: 8+deb8u7]
bind9-host/stable 1:9.9.5.dfsg-9+deb8u11 amd64 [upgradable from: 1:9.9.5.dfsg-9+deb8u9]
ca-certificates/stable 20141019+deb8u3 all [upgradable from: 20141019+deb8u2]
certbot/jessie-backports 0.10.2-1~bpo8+1 all [upgradable from: 0.8.1-2~bpo8+1]
dnsutils/stable 1:9.9.5.dfsg-9+deb8u11 amd64 [upgradable from: 1:9.9.5.dfsg-9+deb8u9]

好答案!提供所有软件包的概述,而无需其他软件包(例如apt-show-versions)。
fxnn

1

正如在其他地方发布的那样,它也适用:

apt-cache madison <package_name>


1

另外,根据手册页:

apt-cache showpkg <package_name>

也可以用于:

...显示有关命令行上列出的软件包的信息。其余参数是程序包名称。列出了列出的每个程序包的可用版本和反向依赖关系,以及每个版本的正向依赖关系。前向(正常)依赖关系是有问题的程序包所依赖的程序包;反向依存关系是那些依赖于相关软件包的软件包。因此,必须满足程序包的前向依存关系,而不必满足反向依存关系。

例如:

apt-cache policy conky

conky:
  Installed: (none)
  Candidate: 1.10.3-1
  Version table:
     1.10.3-1 500
        500 http://us.archive.ubuntu.com/ubuntu yakkety/universe amd64 Packages
        500 http://us.archive.ubuntu.com/ubuntu yakkety/universe i386 Packages

0

您还可以简单地执行常规操作apt-get update,然后按照手册进行操作:

apt-get -V upgrade

-V显示详细的版本号

它将向您显示当前软件包,而将以类似于下面的格式升级的软件包:

~# sudo apt-get -V upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
   curl (7.38.0-4+deb8u14 => 7.38.0-4+deb8u15)
   php5 (5.6.40+dfsg-0+deb8u2 => 5.6.40+dfsg-0+deb8u3)
2 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 12.0 MB of archives.
After this operation, 567 kB of additional disk space will be used.
Do you want to continue? [Y/n] 

1
如果要一次性更新系统并查看所有版本更改,而不是apt-cache policy 对每个软件包
doublehelix
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.