it-swarm-tr.com

Yüklenmiş bir paketin sürüm numarasını dpkg üzerinden nasıl bulabilirim?

Hangi paket sürümünü kurduğumu bulmak için dpkg -l komutunu kullanıyorum. Örneğin:

dpkg -l network-manager

paketteki bilgiyi döndürür:

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                   Description
+++-=========================-=========================-==================================================================
ii  network-manager           0.8.3~git.20101118t223039 network management framework daemon

Gördüğünüz gibi, 0.8.3~git.20101118t223039 değerini döndürür, çünkü bu, sürümü kısaltır (bu sorunun amacı için uzun bir tane seçtim). Bunu geçmişte çözdüğüm yol, onu genişletmek için aptalca uzun bir SÖZLEŞME argümanı iletmektir:

COLUMNS=200 dpkg -l network-manager

bu bana tüm sürüm numarasını verir, ama aynı zamanda bir hurdalık:

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                                      Description
+++-============================================-============================================-========================================================================================================
ii  network-manager                              0.8.3~git.20101118t223039.d60a988-0ubuntu1   network management framework daemon

Şimdi 0.8.3~git.20101118t223039.d60a988-0ubuntu1 olan tam sürüm numarasını görebilirim.

Yüklü bir paketin sürüm numarasını bulmanın doğru bir yol olmadığını hissediyorum. Bu geçmişte hiçbir zaman gerçekten bir sorun değildi, ancak sürümlerdeki "ubuntu" nun kullanılmasıyla ve PPA'ların çoğalmasıyla, bu dizgiler daha da uzuyor. Daha kolay bir yolu var mı?

80
Jorge Castro
dpkg -s <packagename> | grep '^Version:'

e. g .:

dpkg -s network-manager | grep '^Version:'

Örnek çıktı:

Version: 0.8.1+git.20100810t184654.ab580f4-0ubuntu2
81
aneeshep
dpkg-query --showformat='${Version}' --show python3-lxml
35
A T

dpkg komutunu kullanmıyor, ancak apt-show-versionInstall banshee

Örnek:

$ apt-show-versions network-manager  
network-manager/maverick uptodate 0.8.1+git.20100810t184654.ab580f4-0ubuntu2
25
Isaiah

Aneeshep'in bence dpkg kullanarak belirttiği en iyi cevap olduğunu düşünüyorum. Fakat bütünlük uğruna, işte başka bir yol:

apt-cache policy network-manager 
network-manager:
  Installed: 0.8.1+git.20100810t184654.ab580f4-0ubuntu2
  Candidate: 0.8.1+git.20100810t184654.ab580f4-0ubuntu2
  Version table:
 *** 0.8.1+git.20100810t184654.ab580f4-0ubuntu2 0
        500 http://us.archive.ubuntu.com/ubuntu/ maverick/main i386 Packages
        100 /var/lib/dpkg/status

Veya sadece sürüm numarası için:

apt-cache policy network-manager | grep 'Installed:' | cut -c 14-
0.8.1+git.20100810t184654.ab580f4-0ubuntu2
15
andrewsomething