2017-02-22 1 views
0

Als Teil einer Salz-State-Datei installiere ich nghttp2.Hinweis zur Verwendung, außer wenn in einer Salz-Status-Datei erforderlich

Bisher habe ich den folgenden Code in meinem .sls

install_nghttp2: 
    cmd.run: 
    - name: | 
     cd /tmp 
     wget https://github.com/nghttp2/nghttp2/releases/download/v1.16.0/nghttp2-1.16.0.tar.gz 
     tar -xf nghttp2-1.16.0.tar.gz 
     cd ./nghttp2-1.16.0 
     ./configure 
     make 
     make install 
    - shell: /bin/bash 
    - require: 
     - pkg: install_nghttp2_deps 
    - unless: test -x /tmp/nghttp2-1.16.0 

Ich bin ein wenig vorsichtig von den - unless erforderlichen und wurde gefragt, ob jemand einen besseren Weg hatte nghttp2 zu überprüfen hat nicht bereits installiert ? Ich würde lieber etwas tun, um zu überprüfen, ob es installiert wurde, anstatt nur zu überprüfen, ob es heruntergeladen wurde - es sei denn (Wortspiel beabsichtigt ... irgendwie) hat jemand einen besseren Vorschlag?

+0

Wenn installiert, wird der Pfad von 'nghttp2-1.16.0' an die Umgebungsvariable $ PATH angehängt (oder) an eine Änderung, die Sie selbst hinzufügen? – Inian

+3

Dies sind die Paketmanager ('rpm',' apt', etc). Erstellen Sie ein Paket für 'nghttp2' und installieren Sie es über den Paketmanager Ihrer Wahl; Dann prüft Ihr 'ifly'-Test einfach, ob das entsprechende Paket installiert ist. – chepner

Antwort

0

Da Sie bestimmte Version kompilieren und Sie nicht mit Paket-Manager installieren, denke ich, dass Sie es richtig machen.

Vielleicht bessere Option, um zu überprüfen, ob das Programm installiert ist, wäre die Verwendung unterschiedlicher Befehl in , es sei denn, erforderlich.

Zum Beispiel können Sie nghttpd --version oder mit voller Pfad verwenden, wo die Binärdatei /usr/sbin/nghttpd --version gespeichert ist.

Andere gute Option ist which nghttpd zu verwenden.

Verwandte Themen