如何在 GitHub Actions/CI 上使用 Chocolately 获取 ImageMagick 的安装路径?

如何在 GitHub Actions/CI 上使用 Chocolately 获取 ImageMagick 的安装路径?

所以我有这个错误:在 Windows 10 上,使用 ImageMagick 转换命令时出现“无效参数 - -fuzz”,因为 ImageMagick 在 Windows 上没有正确地位于 PATH 中。

现在的问题是,我如何以编程方式获取已安装的可执行文件路径,以便直接运行它?事实证明 chocolatey 需要付费订阅启用此功能太差劲了。那么我还能怎样实现这一点呢?

我正在使用 GitHub CI/Actions 执行此操作,因此我无法直观地查看和配置它,需要完全通过编程来找到和使用它。我该怎么做?

答案1

我在 github 操作上遇到了同样的问题。解决方案是使用refreshenv您可能期望的方法,但有一个小警告:您必须在要使用已安装程序的同一步骤中调用它,并确保通过 调用它call,例如:

  - run: choco install -y imagemagick
  - name: Build icons
    shell: cmd
    run: |
      call refreshenv
      magick ...
      magick ...

如果有多个步骤想要重用 PATH 配置,则可以调用一次 refreshenv 并将其导出,如下所示:

  - run: choco install -y imagemagick
  - name: Set PATH
    shell: cmd
    run: |
      call refreshenv
      echo ::set-env name=PATH::%PATH%
  - run: magick
  - run: magick

最后,如果您对安装路径本身感兴趣,您可以采取这样的技巧:

  - run: choco install -y imagemagick

  - name: Extract path
    id: getpath
    shell: cmd
    run: |
      call refreshenv
      for /f "delims=" %%G in ('where magick') do (
          echo ::set-env name=MAGICKPATH::%%~fG
          echo ::set-output name=magick::%%~fG
      )

  - run: echo $env:MAGICKPATH
  - run: echo ${{ steps.getpath.outputs.magick }}

答案2

即使使用免费版本,您也可以设置安装目录,而不必获取它。

根据 Chocolately 的文档您可以更改安装目录...甚至在 Chocolatey 开源中

不同的安装程序类型(例如 MSI、NSIS...)有不同的方法来接收 Chocolately 所指的“安装参数”。在免费版本中,您需要为每种安装程序类型本机指定这些参数(使用选项-ia),而付费版本提供了一种简化的“通用”方法。

相关内容