Jak sprawdzić wersję przed instalacją pakietów za pomocą apt-get

181

Myślę o zainstalowaniu hylafax + wersja 5.5.4, która została wydana w zeszłym miesiącu na moim komputerze Debian .

Sprawdziłem dpkg -l | grep "hylafax"i dowiedziałem się, że bieżąca wersja to 5.5.3. Potem sprawdziłem apt-cache search hylafaxi zobaczyłem, że paczki są dostępne, ale nie widzę żadnego numeru wersji.

Jak mogę znaleźć wersję pakietów dostępnych w apt-get?

Yasiru G.
źródło
2
To samo pytanie na temat wymiany stosów
Fabio mówi Przywróć Monikę

Odpowiedzi:

309

OK, znalazłem to.

apt-cache policy <package name> pokaże szczegóły wersji.

Pokazuje także, która wersja jest aktualnie zainstalowana i które wersje są dostępne do zainstalowania.

Na przykład, apt-cache policy hylafax+

Yasiru G.
źródło
3
Nie mogę uwierzyć, że to nie jest pokazane apt install, aby dać Ci szansę przejrzenia wersji przed powiedzeniem Y.
Benjamin
Jeśli korzystamy z apt installniektórych pakietów (mogą nie być zainstalowane), zainstaluj je od razu. Myślę więc, że dla nowego użytkownika Linuksa lepiej go używać 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 <[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
Anthony Zhan
źródło
2
Uwaga: dpkg -lwyświetla tylko zainstalowane pakiety. Nie warto wyświetlać wcześniej wersji.
Tomasz Gandor
Dzięki za flagę -s w instalacji apt-get! :)
andymel
10
apt policy <package>

w skrócie

P. Vincent
źródło
8

Linux Mint, Debian 9, Ubuntu 16.04 i starsze:

Krótka informacja :

apt policy <package_name>

Szczegółowe informacje (z opisem i zależnością):

apt show <package_name>
dojrzały
źródło
6

Następujące elementy mogą działać wystarczająco dobrze:

aptitude versions ^hylafax+

Zobacz więcej w aptitude (8)

Onlyjob
źródło
3

Ponadto pakiet apt-show-wersje (instalowany osobno) analizuje informacje dpkg o tym, co jest zainstalowane i informuje, czy pakiety są aktualne.

Przykład..

$ 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
$
Cześć, to
źródło
3

na debianie:

apt list --upgradable

podaje listę z pakietem, wersją do uaktualnienia i aktualną wersją pakietu.

wynik:

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]
Trantkat Troy
źródło
Świetna odpowiedź! Daje przegląd wszystkich pakietów, nie są apt-show-versionspotrzebne żadne dodatkowe pakiety (jak ).
fxnn
1

Jak napisano w innym miejscu, to też działa:

apt-cache madison <package_name>

woohoo
źródło
1

Ponadto według strony podręcznika:

apt-cache showpkg <package_name>

może być również użyty do:

... wyświetla informacje o pakietach wymienionych w wierszu poleceń. Pozostałe argumenty to nazwy pakietów. Dostępne wersje i odwrotne zależności każdego wymienionego pakietu są wymienione, a także zależności przekazywania dla każdej wersji. Zależności przekazywania (normalne) to te pakiety, od których zależy dany pakiet; odwrotnymi zależnościami są te pakiety, które zależą od danego pakietu. Dlatego dla pakietu muszą być spełnione zależności do przodu, ale nie muszą być zależności odwrotne.

Dawny:

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
źródło
0

Możesz także po prostu wykonać zwykłe czynności, apt-get updatea następnie, zgodnie z instrukcją, wykonać:

apt-get -V upgrade

-V Pokaż pełne numery wersji

Który pokaże ci obecny pakiet w porównaniu z tym, który zostanie zaktualizowany w formacie podobnym do poniższego:

~# 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] 
Frankie
źródło
1
Jest to znacznie lepsze niż zaakceptowana odpowiedź, jeśli chcesz zaktualizować system i przejrzeć wszystkie zmiany wersji za jednym razem, zamiast wywoływać apt-cache policy każdy pakiet
doublehelix