1

我是面料新手。我正在尝试检查远程计算机中是否安装了 setkey。为此,我只是想检查它的版本号,如果它返回错误,那么它将安装所需的包。以下是代码

with settings(hide('stdout'), warn_only=True):
    out = sudo('setkey -V', shell=False);
    if out.failed:
        print(red("* Setkey not installed. Installing"))
        sudo(setkey_install)

但是我收到警告

警告:sudo() 在执行 'setkey -V' 时遇到错误(返回码 1)

这可能是什么原因?有没有其他方法可以检查是否安装了软件包?

4

1 回答 1

0

我会使用 *nix 命令which返回setkey(如果不存在则返回任何内容)的位置,如下所示:

with settings(hide('stdout'), warn_only=True):
    if not run('which setkey'):
        print(red("* Setkey not installed. Installing..."))
        sudo(setkey_install)

由于run返回给定命令的输出,因此您应该能够not像这样在其上使用运算符。

于 2011-05-05T08:48:32.340 回答