Ich möchte, dass eine Shell-Skriptmethode testet / meldet, wenn ein Paket installiert ist. Ich brauche keine Details, nur eine boolesche Rückgabe, um den Logikfluss festzulegen. Ich habe nach Suchen gesucht, ob ein Paket installiert ist , aber dpkg
komplexe Ausgaben zurückgibt und das Format ändert sich je nachdem, ob sich das Paket im Debian-Repository oder in einem Ubuntu-PPA befindet.
Ich fand, dass apt-cache
das einen ziemlich guten Job macht und habe mir diese Methode ausgedacht:
is_installed=0
test_installed=( `apt-cache policy package-name | grep "Installed:" ` )
[ ! "${test_installed[1]}" == "(none)" ] && is_installed=1
Kennt jemand einen einfacheren oder direkteren Weg?
dpkg-query -l "$package" | grep -q ^.i
normalerweise ausreichend ist (und leichter zu merken ist).