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)

ただし、警告が表示されます

警告: 「setkey -V」の実行中に sudo() でエラーが発生しました (戻りコード 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 に答える