Saya ingin metode skrip shell untuk menguji / melaporkan jika suatu paket diinstal. Saya tidak perlu detail, hanya kembali boolean untuk mengatur aliran logika. Saya melihat Find jika suatu paket diinstal , tetapi dpkg
mengembalikan output yang kompleks dan perubahan formatnya tergantung pada apakah paket tersebut ada di repositori Debian atau dalam PPA Ubuntu.
Saya menemukan bahwa apt-cache
melakukan pekerjaan yang cukup bagus dan saya datang dengan metode ini:
is_installed=0
test_installed=( `apt-cache policy package-name | grep "Installed:" ` )
[ ! "${test_installed[1]}" == "(none)" ] && is_installed=1
Adakah yang tahu cara yang lebih sederhana atau lebih langsung?
dpkg-query -l "$package" | grep -q ^.i
biasanya cukup (dan lebih mudah diingat).