Come controllare la versione prima di installare i pacchetti usando apt-get


183

Sto pensando di installare hylafax + versione 5.5.4 che è stata rilasciata il mese scorso sul mio PC Debian .

Ho controllato dpkg -l | grep "hylafax" e scoperto che la versione corrente è la 5.5.3. Quindi ho controllato apt-cache search hylafaxe ho visto che i pacchetti sono disponibili, ma non riesco a vedere nessun numero di versione.

Come posso trovare la versione dei pacchetti disponibili in apt-get?


2
Stessa domanda su Unix e Linux Stack Exchange: unix.stackexchange.com/questions/6284/…
Fabio dice

Risposte:


311

OK, l'ho trovato.

apt-cache policy <package name> mostrerà i dettagli della versione.

Mostra anche quale versione è attualmente installata e quali versioni sono disponibili per l'installazione.

Per esempio, apt-cache policy hylafax+


3
Non riesco a credere che questo non sia mostrato apt install, per darti la possibilità di rivedere le versioni prima di dirlo Y.
Benjamin,

Se utilizziamo apt installalcuni pacchetti (potrebbe non essere installato), procedi subito all'installazione. Quindi penso che per il nuovo utente Linux sia meglio usarlo 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
Si noti che dpkg -lelenca solo i pacchetti installati. Non utile per vedere la versione in anticipo.
Tomasz Gandor,

Grazie per il flag -s in apt-get install! :)
andymel


8

Linux Mint, Debian 9, Ubuntu 16.04 e precedenti:

Informazioni brevi :

apt policy <package_name>

Informazioni dettagliate (con descrizione e dipendenze):

apt show <package_name>

6

Quanto segue potrebbe funzionare abbastanza bene:

aptitude versions ^hylafax+

Visualizza altro in aptitude (8)


3

Inoltre, il pacchetto apt-show-version (installato separatamente) analizza le informazioni di dpkg su ciò che è installato e ti dice se i pacchetti sono aggiornati.

Esempio..

$ 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

su debian:

apt list --upgradable

fornisce l'elenco con il pacchetto, la versione da aggiornare e la versione effettiva del pacchetto.

risultato:

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]

Bella risposta! Fornisce una panoramica di tutti i pacchetti, non sono necessari pacchetti aggiuntivi (come apt-show-versions).
fxnn,

1

Come pubblicato da qualche altra parte, anche questo funziona:

apt-cache madison <package_name>


1

Inoltre, secondo la pagina man:

apt-cache showpkg <package_name>

può anche essere usato per:

... visualizza informazioni sui pacchetti elencati nella riga di comando. Gli argomenti rimanenti sono nomi di pacchetti. Sono elencate le versioni disponibili e le dipendenze inverse di ciascun pacchetto elencato, nonché le dipendenze forward per ciascuna versione. Le dipendenze forward (normali) sono quei pacchetti da cui dipende il pacchetto in questione; le dipendenze inverse sono quei pacchetti che dipendono dal pacchetto in questione. Pertanto, le dipendenze forward devono essere soddisfatte per un pacchetto, ma non è necessario che le dipendenze reverse.

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

0

Puoi anche semplicemente fare il normale apt-get updatee poi, come nel manuale, fare:

apt-get -V upgrade

-V Mostra numeri di versione dettagliati

Che ti mostrerà il pacchetto corrente rispetto a quello che verrà aggiornato in un formato simile a quello qui sotto:

~# 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
Questo è molto meglio della risposta accettata se si desidera aggiornare il sistema e rivedere tutte le modifiche della versione in una volta, invece di invocare apt-cache policy su ogni pacchetto
doublehelix
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.