npm - beantalk npm/yarn 安装中缺少模块,只能作为 root 工作
问题描述
我有一个 posthook 可以在我的 (PHP) beanstalk 上安装 npm 以编程方式构建一些东西。
这是来自 .platfom/hooks/postdeploy/99_node.sh 的脚本
curl -fsSL https://rpm.nodesource.com/setup_12.x | bash -
yum install -y nodejs
npm install -g yarn lerna gatsby-cli
yarn global add lerna gatsby-cli
yarn start
最大的问题是当我运行yarn build
(启动 Gatsby 构建)时,它不能从 webapp 用户运行,而只能作为 root 运行。有什么建议么?
解决方案
我认为 posthook 将以 root 用户身份运行,因为您不需要 asudo
或类似的文件来执行yum install
. 这意味着您还以 root 用户身份安装软件包。这可能是您遇到权限问题的原因。
运行后,您应该能够使用su
命令切换用户(到 webapp 用户)yum install
,以便以npm install
正确的用户身份运行,这应该会自动修复可能导致此问题的权限/安装位置问题。
推荐阅读
- c# - 为 asp-alert-message 模式的消息添加换行符
- apache-spark - 在 PySpark 中查找图中两个顶点之间的距离
- python - 无法使用 Selenium 和 BeautifulSoup 抓取文本
- java - java.lang.IllegalArgumentException:页面指令:导入的值无效
- c# - 手动填充实体 GUID 时被覆盖
- shell - 使用 sudo 管理员权限运行服务
- prometheus - 如何在 Prometheus 中配置 get 方法?
- ios - 将图像从 iOS 上传到 Azure 文件共享
- windows - 如何从 powershell 打开已安装的 Microsoft Store 应用程序?
- sql - 是否可以通过不同的连接和多个连接来提高查询的性能?