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

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

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

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


person Yasiru G    schedule 19.09.2013    source источник
comment
Тот же вопрос по Unix и Linux Stack Exchange: unix.stackexchange.com/questions/6284/   -  person Fabio says Reinstate Monica    schedule 07.06.2018


Ответы (10)


Хорошо, я нашел это.

apt-cache policy <package name> отобразит сведения о версии.

Он также показывает, какая версия установлена ​​в настоящее время и какие версии доступны для установки.

Например, apt-cache policy hylafax+

person Yasiru G    schedule 19.09.2013
comment
Не могу поверить, что это не показано в apt install, чтобы дать вам возможность просмотреть версии, прежде чем сказать Y. - person BenMorel; 30.08.2019
comment
Если мы используем apt install, некоторые пакеты (могут не устанавливаться) сразу устанавливаются. Поэтому я думаю, что для нового пользователя Linux лучше использовать apt policy. - person Yasiru G; 25.10.2019

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 <[email protected]>
Original-Maintainer: Chris Lamb <[email protected]>
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
person Anthony Zhan    schedule 24.03.2015
comment
Обратите внимание, что dpkg -l перечисляет только установленные пакеты. Не полезно заранее видеть версию. - person Tomasz Gandor; 02.05.2016
comment
Спасибо за флаг -s в apt-get install! :) - person andymel; 10.05.2020

apt policy <package>

для краткости

person P. Vincent    schedule 04.10.2017

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

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

apt policy <package_name>

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

apt show <package_name>
person mature    schedule 07.12.2018

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

aptitude versions ^hylafax+

Подробнее см. способность (8)

person Onlyjob    schedule 25.08.2014

Кроме того, пакет 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
$
person HeyWatchThis    schedule 10.06.2014

в 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]
person Trantkat Troy    schedule 28.07.2017
comment
Отличный ответ! Дает обзор всех пакетов, никаких дополнительных пакетов (например, apt-show-versions) не требуется. - person fxnn; 11.07.2019

Как указано в другом месте, это тоже работает:

apt-cache madison <package_name>

person scrat.squirrel    schedule 25.01.2017

Кроме того, согласно странице руководства:

apt-cache showpkg <package_name>

также может использоваться для:

... отображать информацию о пакетах, перечисленных в командной строке. Остальные аргументы - это имена пакетов. Перечислены доступные версии и обратные зависимости каждого перечисленного пакета, а также прямые зависимости для каждой версии. Прямые (нормальные) зависимости - это те пакеты, от которых зависит данный пакет; Обратные зависимости - это те пакеты, которые зависят от рассматриваемого пакета. Таким образом, для пакета должны выполняться прямые зависимости, а обратные зависимости - нет.

Ex:

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
person kjones    schedule 24.06.2017

Вы также можете просто выполнить обычный 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] 
person Frankie    schedule 31.05.2019
comment
Это намного лучше, чем принятый ответ, если вы хотите обновить свою систему и просмотреть все изменения версии за один раз, вместо того, чтобы вызывать apt-cache policy для каждого пакета - person doublehelix; 20.05.2020