You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu 17.10下Jenkins 2.89.2无法调用make命令求助

解决Jenkins中调用make命令提示「not found」的问题

看起来你碰到的这个问题确实有点棘手——命令行里make明明正常可用,Jenkins里却无论怎么折腾都找不到,甚至用绝对路径都不行。我之前在类似的环境里遇到过类似情况,给你几个具体的排查和解决方向:

  • 检查架构兼容性:有时候会出现64位系统上Jenkins用了32位JVM,而make是64位二进制文件的情况,这时候系统会返回「not found」的错误(本质是架构不兼容,不是真的找不到文件)。你可以在Jenkins的「Execute Shell」里先运行这两个命令:

    file /usr/bin/make
    java -version
    

    看输出的架构是否一致,比如make显示x86_64,Java也应该对应amd64版本。如果不一致,需要重新安装对应架构的JDK。

  • 确认Jenkins运行环境是否包含make:如果Jenkins是部署在容器或者chroot隔离环境中,即使宿主机有make,隔离环境里可能没安装。你可以先在Execute Shell里执行:

    ls /usr/bin/make
    

    如果提示文件不存在,那说明需要在Jenkins所在的环境里安装build-essential包:

    apt-get update && apt-get install build-essential
    
  • 排查AppArmor的限制:Ubuntu默认启用AppArmor,可能会限制Jenkins进程的执行权限。你可以临时关闭Jenkins的AppArmor配置测试:

    sudo aa-disable /etc/apparmor.d/usr.lib.jenkins.jenkins-cli.jar
    sudo systemctl restart jenkins
    

    如果关闭后能正常运行,再调整AppArmor的规则来允许Jenkins执行make。

  • 切换到jenkins用户手动测试:直接在服务器上切换到jenkins用户,手动执行make命令,看是否能正常运行:

    su - jenkins -c "/usr/bin/make"
    

    如果这个命令也报错,那问题出在jenkins用户的环境或权限上;如果能正常运行,那就要检查Jenkins的全局配置里有没有被覆盖的环境变量,或者启动脚本里的特殊限制。

  • 检查环境变量是否被重置:虽然你已经设置了PATH,但可能Jenkins的某些全局脚本或者项目前置步骤把PATH重置了。可以在Execute Shell的最开头运行env,把所有环境变量输出,和命令行里的env结果对比,重点看PATH、LD_LIBRARY_PATH这些关键变量的差异。

内容的提问来源于stack exchange,提问作者drong0

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:22:34