Ubuntu 詹金斯可以';不要开玩笑

Ubuntu 詹金斯可以';不要开玩笑,ubuntu,jenkins,Ubuntu,Jenkins,我最近在Ubuntu 17.10上安装了Jenkins 2.89.2,我正在尝试建立我的第一个项目。到目前为止,我已经设法让Jenkins从我的存储库下载了源代码,但是我在调用make时遇到了麻烦。我已配置为使用命令make在项目>配置>构建环境>构建(执行Shell)中调用make。调用make后,它返回错误make:notfound 我已经尝试了下面与向$PATH环境变量添加正确目录相关的问题。我已尝试将其添加到“管理Jenkins>配置系统>环境变量”下的系统设置中,以及“项目>配置>构建

我最近在Ubuntu 17.10上安装了Jenkins 2.89.2,我正在尝试建立我的第一个项目。到目前为止,我已经设法让Jenkins从我的存储库下载了源代码,但是我在调用make时遇到了麻烦。我已配置为使用命令
make
在项目>配置>构建环境>构建(执行Shell)中调用make。调用make后,它返回错误
make:notfound

我已经尝试了下面与向$PATH环境变量添加正确目录相关的问题。我已尝试将其添加到“管理Jenkins>配置系统>环境变量”下的系统设置中,以及“项目>配置>构建环境>构建(执行Shell)”下,将路径设置为
$PATH:/usr/bin
。我确信我成功地设置了正确的路径,因为我在调用之前回显$Path,但随后尝试使用完全限定的路径调用make,这导致了相同的错误:
sh:/usr/bin/make:not found
。这让我相信我打错电话了

我尝试用命令
sh make
sh/usr/bin/make
调用make,错误变为
cannotopenmake
cannotopen/usr/bin/make

这让我相信make的访问权限是不正确的,但似乎是这样

-rwxr-xr-x 1 root root 222792 Feb  1  2017 /usr/bin/make
也许jenkins用户需要添加一个组

我对它可能是什么想法都没有了,并且怀疑我对我所称的制造方式是否得出了正确的结论

其他一些细节: make在命令行中正常工作
哪个make
返回
/usr/bin/make


我在此声明我效忠并请求詹金斯诸神宽恕我的灵魂。

如果您使用的是詹金斯docker图像,请注意詹金斯提供的图像不包括此(make)以及您可能需要的其他DEP

您可以使用root用户对该容器运行docker exec,并使用apt get安装所有DEP,然后您的构建将运行

docker-machine env jenkins
#paste the env to set the docker-machine context
docker exec -it --user root <container-name> /bin/bash 
#terminal session as root starts
apt-get update 
apt-get install build-essential
docker machine env jenkins
#粘贴环境以设置docker机器上下文
docker exec-it——用户root/bin/bash
#根目录启动时的终端会话
apt获取更新
apt获取安装构建必需

我甚至试着完全按照教程进行操作,甚至在调用make时也失败了。看来我在安装詹金斯的过程中遗漏了什么。我遵循以下步骤进行安装:自从发帖以来,我尝试在Ubuntu 16.04上安装Jenkins,执行make没有任何问题。我猜在Jenkins的Ubuntu 17.10安装中有一些东西是它不喜欢的。make可执行文件的权限相同
-rwxr-xr-x 1 root root 207528 2016年2月15日/usr/bin/make
詹金斯安装路径在17.10和16.04之间有很大不同。例如,主目录是
/var/snap/jenkins/6
,而在16.04上是
/var/lib/jenkins
。在Ubuntu中找到这个。尝试在17.10上通过snap安装jenkins,但jenkins无法作为服务运行。我放弃了解决这个问题。我宣布它“坏了”:-)为我回到Ubuntu 16.04!这将告诉我,最新和最好的并不总是最好的。事实上,它是作为服务安装的。如果通过snap安装,结果相同。包的正确名称为“build essential”。