(共556篇)
全部分类

jenkins在远程服务器上执行命令出现`commandnotfound`的问题
[ Linux相关 ] 

使用jenkins部署项目时, 部署日志中出现了一下错误提示

1
yarn: command was not found

SSH方式登录远程服务器,执行以下命令证明环境是正常的:

1
2
3
4
$ yarn -v
1.22.10
$ whereis yarn 
/usr/local/share/applications/nodejs12/bin/yarn

yarn所在的环境变量已经配置在/etc/profile文件中了,google了一堆,据说是因为jenkins不是以ssh登录的方式执行命令的,没有导入/etc/profile中的环境变量.

搜索结果中的错误方案:

有人推荐了一种方案: 在所有命令前添加一行#/bin/sh l或者#/bin/bash l, 结果根本没用

正确解决方案

既然是因为jenkins没有加载/etc/profile中的环境变量, 干脆就在所有命令前添加一行source /etc/profile

问题解决!!!

更正确的解决方案

Exec command的命令行输入框下方有一个 “高级” 按钮, 点开它,

里面有一个Exec in pty选项, 它的意思是, 模拟一个终端, 在终端中执行命令, 搞定.