首页 > 解决方案 > 如何在 CircleCI 作业中将可执行文件添加到我的路径?

问题描述

我正在运行步骤中下载和解压缩binaryen

- run: wget -c https://github.com/WebAssembly/binaryen/releases/download/version_101/binaryen-version_101-x86_64-linux.tar.gz -O - | tar -xz -C /tmp/

然后我在更新路径$BASH_ENV

- run: echo "export PATH=/tmp/binaryen-version_101/bin/wasm-opt:\${PATH}" >> $BASH_ENV

但是,我仍然得到一个找不到的命令wasm-opt

如何安装下载的wasm-opt二进制文件以便另一个运行步骤可以使用它?

标签: circleci

解决方案


主要问题是PATH变量应该包含目录列表。您将实际的二进制文件本身添加到了路径中,而不是它所在的目录中。

例如,而不是/tmp/binaryen-version_101/bin/wasm-opt你想要的/tmp/binaryen-version_101/bin/. 此外,在将目录添加到之后,PATH您将无法运行这些二进制文件,直到下一步。

这是我制作的示例配置:

version: 2.1
workflows:
  main:
    jobs:
      - build
jobs:
  build:
    docker:
      - image: cimg/base:stable
    steps:
      - checkout
      - run: curl -sSL "https://github.com/WebAssembly/binaryen/releases/download/version_101/binaryen-version_101-x86_64-linux.tar.gz" | tar -xz -C /tmp/
      - run: echo 'export PATH=/tmp/binaryen-version_101/bin/:${PATH}' >> $BASH_ENV
      - run: wasm-opt

推荐阅读