2017-02-22 21 views
0

Как часть файла состояния соли, я устанавливаю nghttp2.Рекомендации по использованию, если не требуется в файле состояния соли

До сих пор у меня есть следующий код в моем .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 

Я немного опасаться - unless реквизита и было интересно, если кто-то лучший способ проверить nghttp2 еще не был установлен ? Я бы предпочел сделать что-то, чтобы проверить, что оно не установлено, а не просто проверить, было ли оно загружено - разве (каламбур ... любезно) у кого-то есть лучшее предложение?

+0

При установке будет ли путь 'nghttp2-1.16.0' добавлен в переменную среды $ PATH (или) любое изменение, которое вы добавите его самостоятельно? – Inian

+3

Это то, что для менеджеров пакетов ('rpm',' apt' и т. Д.). Создайте пакет для 'nghttp2' и установите его через менеджер пакетов по вашему выбору; то ваш тест 'except' просто проверяет, установлен ли соответствующий пакет. – chepner

ответ

0

Поскольку вы компилируете конкретную версию и не устанавливаете ее с помощью диспетчера пакетов, я думаю, что вы делаете это правильно.

Возможно, лучше проверить, установлена ​​ли программа, использовать другую команду в , если не требуется.

Например, вы можете использовать nghttpd --version или с полным путем, где хранится двоичный файл /usr/sbin/nghttpd --version.

Другим хорошим вариантом является использование which nghttpd.