如何测试包是否安装?

tah*_*oar 12 installation package-management

可能重复:
如何检查是否安装了软件包(无超级用户权限)

我想要一个 shell 脚本方法来测试/报告是否安装了软件包。我不需要细节,只需要是/否。

我想出了这个方法。有没有更直接的方法?

is_installed=0
test_installed=( `apt-cache policy domy-ce | grep Installed: ` )
[ ! "${test_installed[1]}" == "(none)" ] && is_installed=1
Run Code Online (Sandbox Code Playgroud)

saj*_*i89 19

您可以使用dpkg -s <packagename> 或 的输出 dpkg-query -l <packagename>

在你的脚本中。
礼貌:https : //stackoverflow.com/questions/1298066/check-if-a-package-is-installed-and-then-install-it-if-its-not

例如

#!/bin/sh

for P; do
    dpkg -s "$P" >/dev/null 2>&1 && {
        echo "$P is installed."
    } || {
        echo "$P is not installed."
    }
done
Run Code Online (Sandbox Code Playgroud)

用法: script.sh package1 package2 .... packageN

礼貌:https : //stackoverflow.com/a/10594734/749232