Jawaban:
Menurut utas ini :
Untuk daftar paket yang diinstal:
dpkg --list | wc --lines
Untuk melihat apakah suatu paket diinstal:
dpkg --list | grep package
dpkg -l | grep -c '^ii'
Ada varian halus seperti dpkg -l | grep -c '^?i'
jika Anda ingin menyertakan paket yang diinstal tetapi penghapusan yang Anda minta. Cara lain adalah
aptitude search '~i' |wc -l
Anda bahkan dapat menyodok langsung ke dalam basis data dpkg:
sh -c 'set /var/lib/dpkg/info/*; echo $#'
Yang ini termasuk paket-paket yang tidak diinstal tetapi yang memiliki file konfigurasi yang tersisa; Anda dapat mendaftar ini dengan dpkg -l | grep '^rc'
.
dpkg -l
bagus tetapi saya benar-benar menemukan diri saya menggunakan apt-show-versions
(tidak diinstal secara default pada Debian; menginstal paket dengan nama yang sama) sebagai gantinya, terutama ketika saya ingin memproses output lebih lanjut (dpkg mencoba menjadi terlalu pintar dengan pembungkus baris).
Apa yang saya gunakan adalah:
dpkg --get-selections | wc --lines
Ini akan memberi Anda jumlah paket yang diinstal.
Jika Anda ingin mengetahui apakah paket tertentu diinstal, gunakan:
dpkg --get-selections | grep <package>
Saya percaya ini akan menyelesaikan keluhan Gilles tentang memasukkan paket lain yang tidak diinstal .
Jika Anda menginginkan jumlah paket yang tepat, Anda tidak boleh menghitung output baris header dpkg-query -l
, jadi Anda perlu pola untuk mencocokkan baris yang dimulai dengan ii
. Satu-liner berikut memberi Anda jumlah baris yang dimulai dengan ii
dan karenanya jumlah paket yang diinstal:
dpkg-query -l | grep "^ii" | wc -l
Ini memberikan hasil yang sama dengan
dpkg --get-selections | grep "[[:space:]]install" | wc -l
Pola grep pada perintah kedua mengabaikan baris yang berisi string "deinstall" di output dari dpkg --get-selections
.
Untuk instace, Anda dapat melakukan ini:
dpkg-query -l | nl | tail -1 | awk '{print $1}'
nl | tail -1 | awk '{print $1}'
akan melaporkan jumlah baris dalam inputnya (kecuali, jika tidak ada input, itu akan mengatakan apa-apa daripada melaporkan 0
) - tetapi mengapa Anda merekomendasikan kludge seperti itu ketika jawaban lain sudah menggunakan wc -l
?
rc
(Dihapus tetapi dengan file konfigurasi yang tersisa)) dalam hitungan Anda.