Bagaimana cara mendaftar semua paket yang diinstal dengan nomor versi tertentu?


27

Saya ingin mendaftar semua paket yang diinstal, dengan nomor versi spesifik pada sistem saya. Saya telah memeriksa dpkg --get-selections( Bagaimana mendaftar semua paket yang diinstal ) tetapi tidak menunjukkan apa yang saya butuhkan. Sebagai contoh:

$ dpkg --get-selections apache2
apache2                                         install

menunjukkan bahwa apache2 diinstal, namun bukan versi. Saya baru-baru ini melakukan apt-get upgradejadi apache2.2.22-1 harus diinstal versi ( http://packages.ubuntu.com/precise-updates/apache2.2-common ), tetapi bagaimana saya bisa menunjukkan itu?

Terima kasih!

Jawaban:


35

Gunakan dpkg -lsebagai gantinya.

Contoh:

dpkg -l | grep '^ii' | grep skype

Output ini:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | skype grep
ii skype 4.2.0.11-0ubuntu0.12.04.2 i386 client untuk Skype VOIP ...

Jika Anda hanya ingin mengekstrak nama dan versinya, Anda dapat melakukan ini:

dpkg -l | grep '^ii' | grep skype | awk '{print $2 "\t" $3}'

Yang hanya akan mencetak kolom kedua dan ketiga dari hasil di atas, seperti ini:

alaa @ aa-lu: ~ $ dpkg -l | grep '^ ii' | grep skype | awk '{print $ 2 "\ t" $ 3}'
skype 4.2.0.11-0ubuntu0.12.04.2

Tentu saja, jika Anda ingin mendaftar semua paket Anda yang terinstal dengan versinya, dan bukan hanya Skype, maka hapus saja grep skypebagian tersebut untuk membuat perintah seperti ini:

dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'

Saya memperhatikan dpkg-l memotong nomor versi jika mereka lebih panjang dari 21 karakter, dan seperti semua versi paket panjangnya 22 karakter. :(
ThorSummoner

12

Menggunakan

dpkg-query --show apache2

untuk mendapatkan nomor versi untuk paket apache2dan

dpkg-query --show 

untuk mendapatkan nomor versi untuk semua paket yang diinstal


1
Solusi Anda memberi saya ~ 20% lebih banyak paket daripada dpkg -l | grep '^ii' | awk '{print $2 "\t" $3}'. Tahukah Anda apa perbedaannya?
Thomas Jensen

3
@ Thomas Jensen: Terima kasih telah melihat ini. dpkg-query --showsebenarnya tidak menunjukkan paket yang diinstal , tetapi yang tidak diinstal . Itu menunjukkan misalnya paket setengah terinstal atau paket dengan file konfigurasi yang tersisa juga.
Florian Diesch
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.