Como verificar a versão antes de instalar pacotes usando o apt-get

183

Estou pensando em instalar o hylafax + versão 5.5.4, que foi lançado no mês passado no meu PC Debian .

Eu verifiquei dpkg -l | grep "hylafax"e descobri que a versão atual é 5.5.3. Depois verifiquei apt-cache search hylafaxe vi que os pacotes estão disponíveis, mas não consigo ver nenhum número de versão.

Como posso encontrar a versão dos pacotes disponíveis no apt-get?

Yasiru G
fonte
2
Mesma pergunta em Unix e Linux Pilha de câmbio: unix.stackexchange.com/questions/6284/...
Fabio diz Reintegrar Monica

Respostas:

311

OK, eu encontrei.

apt-cache policy <package name> mostrará os detalhes da versão.

Também mostra qual versão está atualmente instalada e quais estão disponíveis para instalação.

Por exemplo, apt-cache policy hylafax+

Yasiru G
fonte
3
Não posso acreditar que isso não aparece apt install, para que você possa revisar as versões antes de dizer Y.
Benjamin
Se usarmos apt installalguns pacotes (talvez não estejam instalados), instale-o imediatamente. Então, acho que para o novo usuário do Linux é melhor usar 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
fonte
2
Observe que dpkg -lapenas lista os pacotes instalados. Não é útil ver a versão com antecedência.
Tomasz Gandor
Obrigado pela bandeira -s no apt-get install! :)
andymel
10
apt policy <package>

como diminutivo

P. Vincent
fonte
8

Linux Mint, Debian 9, Ubuntu 16.04 e versões anteriores:

Informações curtas :

apt policy <package_name>

Informação detalhada (com descrição e depende):

apt show <package_name>
maduro
fonte
6

O seguinte pode funcionar bem o suficiente:

aptitude versions ^hylafax+

Veja mais no aptitude (8)

Onlyjob
fonte
3

Além disso, o pacote apt-show-versions (instalado separadamente) analisa as informações do dpkg sobre o que está instalado e informa se os pacotes estão atualizados.

Exemplo..

$ 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
$
HeyWatchThis
fonte
3

no debian:

apt list --upgradable

fornece a lista com o pacote, a versão a ser atualizada e a versão real do pacote.

resultado:

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
fonte
Ótima resposta! Fornece uma visão geral de todos os pacotes, nenhum pacote adicional (como apt-show-versions) é necessário.
Fxnn 11/07/19
1

Como publicado em outro lugar, isso também funciona:

apt-cache madison <package_name>

woohoo
fonte
1

Além disso, de acordo com a página do manual:

apt-cache showpkg <package_name>

também pode ser usado para:

... exibe informações sobre os pacotes listados na linha de comando. Os argumentos restantes são nomes de pacotes. As versões disponíveis e as dependências reversas de cada pacote listado são listadas, bem como as dependências de encaminhamento para cada versão. Dependências diretas (normais) são aqueles pacotes dos quais o pacote em questão depende; dependências reversas são aqueles pacotes que dependem do pacote em questão. Portanto, as dependências avançadas devem ser satisfeitas para um pacote, mas as dependências reversas não precisam.

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
kjones
fonte
0

Você também pode simplesmente fazer o regular apt-get updatee, em seguida, conforme o manual, fazer:

apt-get -V upgrade

-V Mostra números de versão detalhados

O qual mostrará o pacote atual versus o que será atualizado em um formato semelhante ao abaixo:

~# 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
fonte
1
Isso é muito melhor do que a resposta aceita, se você deseja atualizar seu sistema e revisar todas as alterações de versão de uma só vez, em vez de invocar apt-cache policy todos os pacotes
doublehelix