【问题标题】:Jenkins : npm install fail without sudo詹金斯:没有sudo的npm安装失败
【发布时间】: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 的情况下执行此命令?

【问题讨论】:

标签: node.js jenkins


【解决方案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 发行版)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-11-18
        • 1970-01-01
        • 2019-12-01
        • 2017-06-24
        • 2014-07-18
        相关资源
        最近更新 更多