警告:sudo()在执行时遇到错误(返回代码1):Fabric

时间:2011-04-03 21:54:02

标签: fabric

我是面料的新手。我正在尝试检查远程机器中是否安装了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)

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

1 个答案:

答案 0 :(得分: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运算符。