Як перевірити версію перед встановленням пакетів за допомогою apt-get


181

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

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

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


2
Те саме питання щодо обміну стеками
Фабіо каже, що

Відповіді:


309

Добре, я знайшов.

apt-cache policy <package name> покаже подробиці версії

Він також показує, яка версія наразі встановлена ​​та які версії доступні для встановлення.

Наприклад, apt-cache policy hylafax+


3
Не можу повірити, що це не показано в apt install, щоб дати вам можливість переглянути версії, перш ніж говорити Y.
Бенджамін

Якщо ми використовуємо apt installдеякі пакети (можливо, не встановлені), отримайте інсталяцію відразу. Тому я думаю, що для нового користувача Linux краще його використовувати apt policy.
Ясіру Г

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>


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
$

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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.