【问题标题】:Warning: sudo() encountered an error (return code 1) while executing: Fabric警告:sudo() 在执行时遇到错误(返回代码 1):Fabric
【发布时间】:2011-04-03 21:54:02
【问题描述】:

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

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

【问题讨论】:

    标签: fabric


    【解决方案1】:

    我会使用 *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 运算符。

    【讨论】:

      猜你喜欢
      • 2017-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-05
      相关资源
      最近更新 更多