【发布时间】:2018-06-29 05:22:56
【问题描述】:
我已经看到this 的问题,但我运行的是 RHEL 7.3,而不是 Windows。
使用这个简单的 Jenkins shell 脚本:
#!/bin/bash
echo $PATH
echo $HOME
source /app/local/anaconda3/bin/activate py35_myenv
我遇到了这个失败:
$ /bin/bash /tmp/jenkins5945453203311093000.sh
/sbin:/usr/sbin:/bin:/usr/bin:/opt/teradata/client/15.10/bin:/app/local/anaconda3/bin:/opt/teradata/client/15.10/bin:/app/local/anaconda3/bin
/home/jenkins
/tmp/jenkins5945453203311093000.sh: line 4: /app/local/anaconda3/bin/activate: Permission denied
我尝试将chmod/app/local/anaconda3/bin/activate 文件设置为 664(最初是 660),但这并没有帮助。也试过chmod -R o+rx /app/local/anaconda3/envs/py35_myenv(那里的可执行文件原来是770,现在是775)。那也没有帮助。我尝试这样做的原因是因为我收到“权限被拒绝”投诉,并且这台机器上的 jenkins 用户不属于这些 Anaconda 文件所在的组。
根据here 的建议,我尝试将#!/bin/bash 添加到我的 Jenkins 脚本的开头,但这没有帮助。
普通的非 Jenkins 用户可以很好地激活这个 conda 环境。我正在尝试让 Jenkins 在此环境之外运行自动化脚本,但我无法在 Jenkins 作业中激活它。
编辑:如果我不提供activate 的完整路径,我会收到“激活:没有这样的文件或目录”的投诉。
编辑:activate 的原因 chmod 为 664(不可执行)在 this answer 中说明。 activate 必须是不可执行的,并且通过 source 运行,以便它可以对环境进行更改。
Jenkins 版本:2.129-1.1
【问题讨论】: