Je veux une méthode de script shell pour tester / signaler si un package est installé. Je n'ai pas besoin de détails, seulement un retour booléen pour définir le flux logique. J'ai regardé Rechercher si un paquet est installé , mais dpkg
renvoie une sortie complexe et son format change selon que le paquet est dans le référentiel Debian ou dans un PPA Ubuntu.
J'ai trouvé que apt-cache
cela faisait un très bon travail et j'ai trouvé cette méthode:
is_installed=0
test_installed=( `apt-cache policy package-name | grep "Installed:" ` )
[ ! "${test_installed[1]}" == "(none)" ] && is_installed=1
Quelqu'un connaît-il un moyen plus simple ou plus direct?
dpkg-query -l "$package" | grep -q ^.i
c'est généralement suffisant (et plus facile à retenir).