Jenkins:npm安装失败,需要sudo权限

4

我需要在Jenkins作业中执行npm install命令,但是不想使用sudo。当我尝试执行该命令时,出现了以下错误控制台消息:

+ npm install

npm警告:grunt-bump@0.8.0需要一个grunt@>=1.0.1的同伴,但没有安装。npm警告Site_mmm@0.0.1没有存储库字段。npm警告Site_mmm@0.0.1没有许可证字段。Linux 3.13.0-32-generic npm ERR! argv "/usr/local/bin/node" "/usr/local/bin/npm" "install" npm ERR! node v5.1.0 npm ERR! npm v4.0.2 npm ERR!路径/var/lib/jenkins/workspace/mmm/node_modules/.staging npm ERR!代码EACCES npm ERR! errno -13 npm ERR!系统调用mkdir。npm ERR!错误:EACCES:拒绝访问,mkdir '/var/lib/jenkins/workspace/Site_SiFAST_-_Intégration_Continue/node_modules/.staging' 错误(本机) { [错误:EACCES:拒绝访问,mkdir'/var/lib/jenkins/workspace/Site_SiFAST_-_Intégration_Continue/node_modules/.staging'] errno:-13,代码:'EACCES',syscall:'mkdir',path:'/var/lib/jenkins/workspace/Site_SiFAST_-_Intégration_Continue/node_modules/.staging'} 请尝试以root/Administrator身份再次运行此命令。

如何在不使用sudo的情况下执行此命令?


1
你看过这个吗?https://docs.npmjs.com/getting-started/fixing-npm-permissions - pushpendra chauhan
3个回答

2

我认为您需要使用chmod命令更改目录的访问权限,以便Jenkins用户能够创建目录。请以这样的方式更改它。


0

答案在这里找到: 如何在Jenkins中以root用户身份运行shell命令?

Jenkins用户默认情况下不是sudoer(https://wiki.archlinux.org/index.php/sudo#Using_visudo)。 因此,在命令前添加sudo是不可能的。

您可以尝试将jenkins添加到sudoers中,但对我来说这并没有起作用。 我是通过我添加的链接进行操作的。

在Jenkins配置文件/etc/default/jenkins(适用于大多数Linux发行版)或/etc/sysconfig/jenkins(适用于Redhat/CentOS发行版)中进行更改。


0

感谢 @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/

一个拼写错误:用户应该是usr。 - Leon

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接