詹金斯:没有sudo的npm安装失败

Posted

技术标签:

【中文标题】詹金斯:没有sudo的npm安装失败【英文标题】:Jenkins : npm install fail without sudo 【发布时间】:2017-07-12 07:42:20 【问题描述】:

我需要在没有 sudo 的情况下执行 npm install 命令,但是当我尝试执行此命令时,我的 Jenkins 作业中出现此错误 这是错误控制台消息:

+ npm install

npm WARN grunt-bump@0.8.0 需要一个 grunt@>=1.0.1 但没有 已安装。 npm WARN Site_mmm@0.0.1 没有存储库字段。 npm 警告 Site_mmm@0.0.1 没有许可证字段。 npm 错误! Linux 3.13.0-32-通用 npm 呃! argv "/usr/local/bin/node" "/usr/local/bin/npm" "安装" npm 呃!节点 v5.1.0 npm 错误! npm v4.0.2 npm 错误!小路 /var/lib/jenkins/workspace/mmm/node_modules/.staging npm ERR!代码 EACCES npm 错误! errno -13 npm 错误!系统调用 mkdir

npm 错误!错误:EACCES:权限被拒绝,mkdir '/var/lib/jenkins/workspace/Site_SiFAST_-_Intégration_Continue/node_modules/.staging' npm 错误!在错误(本机)npm ERR! [错误:EACCES:权限 拒绝,mkdir '/var/lib/jenkins/workspace/Site_SiFAST_-_Intégration_Continue/node_modules/.staging'] npm 错误!错误号:-13,npm 错误!代码:'EACCES',npm 错误!系统调用: 'mkdir',npm 错误!小路: '/var/lib/jenkins/workspace/Site_SiFAST_-_Intégration_Continue/node_modules/.staging' npm 错误! npm 错误!请尝试再次运行此命令 根/管理员。

任何人都知道如何在没有 sudo 的情况下执行此命令?

【问题讨论】:

你看过这个docs.npmjs.com/getting-started/fixing-npm-permissions 【参考方案1】:

我认为您需要使用 chmod 命令更改对出错目录的访问权限。以 Jenkins 用户能够创建目录的方式更改它

【讨论】:

【参考方案2】:

感谢@pushpendra chouchan: 修复者:

sudo chown -R [jenkins-user] /user/local/lib/node_modules/
sudo chown -R [jenkins-user] /user/local/bin/
sudo chown -R [jenkins-user] /user/local/lib/share/

【讨论】:

【参考方案3】:

答案是在这里找到: Run shell command in jenkins as root user?

jenkins 用户默认不是 sudoer(https://wiki.archlinux.org/index.php/sudo#Using_visudo)。 所以不能在命令前加 sudo。

您可以尝试将 jenkins 添加到 sudoers,但这对我不起作用。 我是通过我添加的链接这样做的。

更改 jenkins 配置文件 /etc/default/jenkins(适用于大多数 linux 发行版)或 /etc/sysconfig/jenkins(适用于 redhat/centOS 发行版)

【讨论】:

以上是关于詹金斯:没有sudo的npm安装失败的主要内容,如果未能解决你的问题,请参考以下文章

npm 安装 失败

npm安装webpack失败(mac和window都可能会遇到这样的情况,以下问题主要以mac为例)

npm 安装包失败 --- 清除npm缓存

NPM 安装在 docker 容器中失败 - npm WARN tar ENOENT:没有这样的文件或目录

标准错误:主机密钥验证失败 | GitHub |詹金斯 |视窗

npm安装gulp-sass失败处理办法