Saya menggunakan dpkg -l
perintah untuk mencari tahu versi paket apa yang telah saya instal. Sebagai contoh:
dpkg -l network-manager
mengembalikan informasi pada paket:
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
Seperti yang Anda lihat, ia mengembalikan 0.8.3~git.20101118t223039
yang salah karena memotong versi (saya sudah memilih yang panjang untuk keperluan pertanyaan ini). Cara saya memecahkan ini di masa lalu adalah dengan mengajukan argumen COLUMNS yang sangat panjang untuk membuatnya berkembang:
COLUMNS=200 dpkg -l network-manager
yang memberi saya seluruh nomor versi, tetapi juga banyak sampah:
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
Sekarang saya dapat melihat nomor versi lengkap, yaitu 0.8.3~git.20101118t223039.d60a988-0ubuntu1
.
Saya merasa bahwa ini bukan cara yang tepat untuk menemukan nomor versi dari paket yang diinstal. Ini tidak pernah benar-benar menjadi masalah di masa lalu, tetapi dengan penerapan "ubuntu" dalam versi dan proliferasi PPA, string ini semakin lama semakin panjang. Apakah ada cara yang lebih mudah?
sumber
dpkg --info package.deb
bekerja, meskipun-s
tidakdpkg --info package.deb
beroperasi pada file paket,dpkg -s <packagename>
beroperasi pada nama paket - tidak ada file yang diperlukansumber
dpkg-query --showformat='${Package}\t${Version}\n' --show lsb-release coreutils ...
dpkg-query --showformat='${Version}\n' --show python3-lxml
,.Itu tidak menggunakan
dpkg
perintah tetapi apt-show-versiContoh:
sumber
Saya pikir aneeshep adalah jawaban terbaik karena pertanyaan Anda menentukan menggunakan dpkg. Tapi demi kelengkapan, berikut ini cara lain:
Atau hanya untuk nomor versi:
sumber
apt-cache
tergantung pada Lokal saat ini. Misalnya di Jerman Anda perlugrep 'Installiert:'
. Untuk mengimbanginya, selalu gunakan LokalC.UTF-8
saat membuat skrip. Entah denganLC_ALL=C.UTF-8; export LC_ALL
di awal skrip atau untuk kasus per kasus sesuatu seperti:LC_ALL=C.UTF-8 apt-cache policy network-manager | grep 'Installed:' | awk '{print $2}'
Metode lain untuk menemukan versi paket yang diinstal melalui
dpkg
seperti di bawah ini,Contoh:
Penjelasan:
dpkg -l
perintah mencantumkan semua paket yang diinstal. Output standar ini dimasukkan sebagai input keawk
perintah.awk
mencari nama paket yang sesuai di input standar ( kolom 2 ) jika ditemukan kemudian mengambil baris yang sesuai. Dan akhirnya mencetak nilai ( kolom 3 ) yang sebenarnya mewakili versi paket.Menurut yang di atas, kolom 2 mewakili nama paket , kolom 3 mewakili versi paket , kolom 4 mewakili arsitektur dan kolom 5 mewakili deskripsi paket .
sumber
dpkg
terlebih dahulu dan kemudian awk menyaringnya lagi? Anda dapat meminta daftar untuk satu paket juga:dpkg -l <package-name>