Cara memeriksa versi sebelum menginstal paket menggunakan apt-get

183

Saya berpikir untuk menginstal hylafax + versi 5.5.4 yang dirilis bulan lalu di PC Debian saya .

Saya memeriksa dpkg -l | grep "hylafax"dan menemukan bahwa versi saat ini adalah 5.5.3. Kemudian saya memeriksa apt-cache search hylafaxdan melihat paket-paket tersedia, tetapi saya tidak dapat melihat nomor versi apa pun.

Bagaimana saya dapat menemukan versi paket yang tersedia di apt-get?

Yasiru G
sumber
2
Pertanyaan yang sama di Unix & Linux Stack Exchange: unix.stackexchange.com/questions/6284/…
Fabio mengatakan Reinstate Monica

Jawaban:

311

OK, saya menemukannya.

apt-cache policy <package name> akan menampilkan detail versi.

Ini juga menunjukkan versi mana yang saat ini diinstal dan versi mana yang tersedia untuk diinstal.

Sebagai contoh, apt-cache policy hylafax+

Yasiru G
sumber
3
Tidak percaya ini tidak ditampilkan di apt install, untuk memberi Anda kesempatan meninjau versi sebelum mengatakan Y.
Benjamin
Jika kami menggunakan apt installbeberapa paket (mungkin tidak diinstal) langsung instal. Jadi saya pikir untuk pengguna Linux baru lebih baik digunakan 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
sumber
2
Perhatikan bahwa dpkg -lhanya mencantumkan paket yang diinstal. Tidak berguna melihat versi sebelumnya.
Tomasz Gandor
Terima kasih untuk flag -s di apt-get install! :)
andymel
10
apt policy <package>

Singkatnya

P. Vincent
sumber
8

Linux Mint, Debian 9, Ubuntu 16.04 dan lebih lama:

Info singkat :

apt policy <package_name>

Info lengkap (Dengan Keterangan dan Tergantung):

apt show <package_name>
dewasa
sumber
6

Berikut ini mungkin bekerja dengan cukup baik:

aptitude versions ^hylafax+

Lihat lebih banyak di aptitude (8)

Onlyjob
sumber
3

Juga, paket apt-show-versi (diinstal secara terpisah) mem-parsing informasi dpkg tentang apa yang diinstal dan memberi tahu Anda apakah paket tersebut mutakhir.

Contoh..

$ 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
sumber
3

pada debian:

apt list --upgradable

memberikan daftar dengan paket, versi untuk ditingkatkan, dan versi aktual paket.

hasil:

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
sumber
Jawaban bagus! Memberikan ikhtisar untuk semua paket, tidak perlu paket tambahan (seperti apt-show-versions).
fxnn
1

Seperti yang diposting di tempat lain, ini juga berfungsi:

apt-cache madison <package_name>

Woo hoo
sumber
1

Juga, menurut halaman manual:

apt-cache showpkg <package_name>

dapat juga digunakan untuk:

... menampilkan informasi tentang paket yang terdaftar di baris perintah. Argumen yang tersisa adalah nama paket. Versi yang tersedia dan dependensi terbalik dari setiap paket yang terdaftar terdaftar, serta dependensi maju untuk setiap versi. Ketergantungan forward (normal) adalah paket-paket yang menjadi dasar paket tersebut; reverse dependencies adalah paket-paket yang bergantung pada paket yang dimaksud. Dengan demikian, dependensi forward harus dipenuhi untuk sebuah paket, tetapi dependensi sebaliknya tidak harus.

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
sumber
0

Anda juga bisa cukup melakukan hal biasa apt-get updatedan kemudian, sesuai manual, lakukan:

apt-get -V upgrade

-V Tampilkan nomor versi verbose

Yang akan menunjukkan kepada Anda paket saat ini vs yang akan ditingkatkan dalam format yang mirip dengan yang di bawah ini:

~# 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
sumber
1
Ini jauh lebih baik daripada jawaban yang diterima jika Anda ingin memperbarui sistem Anda dan meninjau semua perubahan versi dalam sekali jalan, daripada meminta apt-cache policy pada setiap paket
doublehelix