Как проверить версию перед установкой пакетов с помощью apt-get

183

Я думаю установить Hylafax + версии 5.5.4, которая была выпущена в прошлом месяце на моем ПК с Debian .

Я проверил dpkg -l | grep "hylafax"и обнаружил, что текущая версия 5.5.3. Затем я проверил apt-cache search hylafaxи увидел, что пакеты доступны, но я не вижу номер версии.

Как я могу найти версию пакетов, доступных в apt-get?

Ясиру Г
источник
2
Тот же вопрос на Unix и Linux Stack Exchange: unix.stackexchange.com/questions/6284/…
Фабио говорит, что восстановите Монику

Ответы:

311

ОК, я нашел это.

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перечислены только установленные пакеты. Не полезно заранее видеть версию.
Томаш Гандор
Спасибо за флаг -s в apt-get install! :)
andymel
8

Linux Mint, Debian 9, Ubuntu 16.04 и старше:

Краткая информация :

apt policy <package_name>

Подробная информация (с описанием и зависит):

apt show <package_name>
зрелый
источник
6

Следующее может работать достаточно хорошо:

aptitude versions ^hylafax+

Увидеть больше в aptitude (8)

Onlyjob
источник
3

Кроме того, пакет apt-show- version (устанавливается отдельно) анализирует информацию 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
$
HeyWatchThis
источник
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>

Woohoo
источник
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
kjones
источник
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