Предупреждение: sudo () обнаружил ошибку (код возврата 1) при выполнении: Fabric - PullRequest
1 голос
/ 04 апреля 2011

Я новичок в ткани.Я пытаюсь проверить, установлен ли 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 () обнаружил ошибку (код возврата 1) при выполнении команды setkey -V

В чем может быть причина этого?Есть ли другой способ проверить, установлен ли пакет?

1 Ответ

0 голосов
/ 05 мая 2011

Я бы использовал * 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 для этого следующим образом.

...