2017-02-22 20 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'构建一个包,并通过你选择的包管理器进行安装;那么你的'除非'测试只是检查是否安装了合适的软件包。 – chepner

回答

0

既然您编译了特定的版本,并且您不需要使用软件包管理器进行安装,我认为您的做法是正确的。

也许更好的选项来检查程序是否安装在将使用不同的命令,除非必要。

例如,您可以使用nghttpd --version或完整路径,其中二进制文件存储在/usr/sbin/nghttpd --version。其他不错的选择是使用which nghttpd

相关问题