我是面料的新手。我正在尝试检查远程机器中是否安装了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)
这可能是什么原因?有没有其他方法来检查是否安装了包?
答案 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
运算符。