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 尚未安装?我宁愿做一些事情来检查它是否已安装,而不仅仅是检查它是否已被下载 - 除非(双关语......有点)有人有更好的建议?

4

1 回答 1

0

由于您编译特定版本并且没有使用包管理器安装它,我认为您做得对。

除非必要,否则检查程序是否已安装的更好选择可能是使用不同的命令。

例如,您可以使用nghttpd --version或使用存储二进制文件的完整路径/usr/sbin/nghttpd --version

其他不错的选择是使用which nghttpd.

于 2017-04-01T16:26:11.543 回答