Heroku buildpack:bash 脚本中 npm 安装的权限被拒绝
Heroku buildpack: permission denied on npm install in bash script
我正在创建一个 Heroku 构建包,并在使用该构建包进行部署时获得 npm 权限被拒绝。这是构建日志中的错误,当 运行 npm install
:
时权限被拒绝
remote: /tmp/buildpack_47ff480d86444378a118f5abcd37cc34/bin/compile:
35: /tmp/tools/npm: Permission denied
我将 npm 打包在 tar.gz 中并使用它。
在我的 compile
文件中:
#!/bin/sh
export BUILD_DIR=
export CACHE_DIR=
export ENV_DIR=
export TOOLS_URL="https://s3.amazonaws.com/heroku-hzhu/tools.tar.gz"
export TOOLS_DIR="/tmp/tools"
#---- install pre-built tools from tarball ---------------------------------
curl -o $(dirname ${TOOLS_DIR})/tools.tar.gz ${TOOLS_URL}
(cd $(dirname ${TOOLS_DIR}) ; tar -xzvf tools.tar.gz; rm -f tools.tar.gz)
# add node and npm to path
export NODE_HOME=${TOOLS_DIR}/node-v0.10.29-linux-x64
export PATH=${PATH}:${NODE_HOME}/bin
export NPM_HOME=${TOOLS_DIR}/npm
export PATH=${PATH}:${NPM_HOME}/bin
#---- compile app --------------------------------------------------------------
(cd ${BUILD_DIR} ; ${TOOLS_DIR}/lein cljsbuild once dev)
#---- install node packages ----------------------------------------------------
(cd ${BUILD_DIR} ; ${TOOLS_DIR}/npm install)
是否有可能 npm
或 node
在打包或解压缩它们时缺少可执行位?这就是这个 "permission denied" 错误在我看来的样子。
你能在本地测试吗?
此外,您是否出于特定原因依赖 node
0.10.29?我问是因为最新的稳定 node
是 0.10.36,它包含一些重要的安全修复程序。 (不过,它们可能不会影响您。)
我正在创建一个 Heroku 构建包,并在使用该构建包进行部署时获得 npm 权限被拒绝。这是构建日志中的错误,当 运行 npm install
:
remote: /tmp/buildpack_47ff480d86444378a118f5abcd37cc34/bin/compile:
35: /tmp/tools/npm: Permission denied
我将 npm 打包在 tar.gz 中并使用它。
在我的 compile
文件中:
#!/bin/sh
export BUILD_DIR=
export CACHE_DIR=
export ENV_DIR=
export TOOLS_URL="https://s3.amazonaws.com/heroku-hzhu/tools.tar.gz"
export TOOLS_DIR="/tmp/tools"
#---- install pre-built tools from tarball ---------------------------------
curl -o $(dirname ${TOOLS_DIR})/tools.tar.gz ${TOOLS_URL}
(cd $(dirname ${TOOLS_DIR}) ; tar -xzvf tools.tar.gz; rm -f tools.tar.gz)
# add node and npm to path
export NODE_HOME=${TOOLS_DIR}/node-v0.10.29-linux-x64
export PATH=${PATH}:${NODE_HOME}/bin
export NPM_HOME=${TOOLS_DIR}/npm
export PATH=${PATH}:${NPM_HOME}/bin
#---- compile app --------------------------------------------------------------
(cd ${BUILD_DIR} ; ${TOOLS_DIR}/lein cljsbuild once dev)
#---- install node packages ----------------------------------------------------
(cd ${BUILD_DIR} ; ${TOOLS_DIR}/npm install)
是否有可能 npm
或 node
在打包或解压缩它们时缺少可执行位?这就是这个 "permission denied" 错误在我看来的样子。
你能在本地测试吗?
此外,您是否出于特定原因依赖 node
0.10.29?我问是因为最新的稳定 node
是 0.10.36,它包含一些重要的安全修复程序。 (不过,它们可能不会影响您。)