Как да проверя версията, преди да инсталирам пакет с помощта на apt-get?

Мисля да инсталирам hylafax+ версия 5.5.4, която беше пусната миналия месец на моя Debian PC.

Проверих 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+

Вижте повече в aptitude(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