首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jenkins - Rake插件找不到Rake

Jenkins - Rake插件找不到Rake
EN

Stack Overflow用户
提问于 2012-09-11 15:44:03
回答 2查看 4.1K关注 0票数 1

我在我的Jenkins工作中使用了几个Rake步骤(通过Rake插件),但它声称无法找到Rake:

代码语言:javascript
复制
+ bundle update
.................................
Using rake (0.9.2.2) 
.................................
[workspace] $ rake db:drop
FATAL: rake execution failed
java.io.IOException: Cannot run program "rake" (in directory "/var/lib/jenkins/jobs/myproject/workspace"): java.io.IOException: error=2, No such file or directory
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:475)
    at hudson.Proc$LocalProc.<init>(Proc.java:244)
    at hudson.Proc$LocalProc.<init>(Proc.java:216)
    at hudson.Launcher$LocalLauncher.launch(Launcher.java:709)
    at hudson.Launcher$ProcStarter.start(Launcher.java:338)
    at hudson.Launcher$ProcStarter.join(Launcher.java:345)
    at hudson.plugins.rake.Rake.perform(Rake.java:141)
    at hudson.tasks.BuildStepMonitor$1.perform(BuildStepMonitor.java:19)
    at hudson.model.AbstractBuild$AbstractBuildExecution.perform(AbstractBuild.java:717)
    at hudson.model.Build$BuildExecution.build(Build.java:199)
    at hudson.model.Build$BuildExecution.doRun(Build.java:160)
    at hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:499)
    at hudson.model.Run.execute(Run.java:1502)
    at hudson.model.FreeStyleBuild.run(FreeStyleBuild.java:46)
    at hudson.model.ResourceController.execute(ResourceController.java:88)
    at hudson.model.Executor.run(Executor.java:236)
Caused by: java.io.IOException: java.io.IOException: error=2, No such file or directory
    at java.lang.UNIXProcess.<init>(UNIXProcess.java:164)
    at java.lang.ProcessImpl.start(ProcessImpl.java:81)
    at java.lang.ProcessBuilder.start(ProcessBuilder.java:468)
    ... 15 more
Build step 'Invoke Rake' marked build as failure
Finished: FAILURE

如果我在Jenkins的配置中手动指定Ruby路径:

代码语言:javascript
复制
[workspace] $ rake db:drop
[31mERROR: Gem rake is not installed, run `gem install rake` first.(B[m
Build step 'Invoke Rake' marked build as failure
Finished: FAILURE

如果我在Jenkins中执行rake作为一个普通的shell命令,而不使用Rake插件:

代码语言:javascript
复制
+ rake db:drop
/var/lib/jenkins/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/1.9.1/yaml.rb:56:in `<top (required)>':
It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.

当我执行"bundle exec rake db:drop“时,同样发生了两次。

在作业中临时包含两行:

代码语言:javascript
复制
rvm pkg install libyaml
rvm reinstall 1.9.3

无济于事。(更新:这只是警告,不会影响任何事情,但很烦人)。

我在Jenkins之外的~/.rvm目录下安装了另一个RVM + Ruby包,它工作得很好。

EN

回答 2

Stack Overflow用户

发布于 2014-08-15 00:56:10

不知道它是否对你有帮助,但我也有类似的问题。问题是我安装Rake gem的Ruby路径不在Jenkins进程的路径中。

我使用的init.d脚本(/etc/init.d/jenkins)硬编码了PATH变量:

代码语言:javascript
复制
PATH=/bin:/usr/bin:/sbin:/usr/sbin

由于我使用的是init.d,所以我将嵌入式ChefDK ChefDK添加到init.d脚本路径中:

代码语言:javascript
复制
PATH=/bin:/usr/bin:/sbin:/usr/sbin:/opt/chefdk/embedded/bin:/opt/chefdk/bin/

您可能需要根据Ruby的安装位置修改路径。希望这对某些人有帮助。

票数 1
EN

Stack Overflow用户

发布于 2012-09-11 20:06:48

试试Rake Plugin吧。

为了满足我们的需求,RVM Plugin完成了这项工作,其余的就像我们在脚本/外壳构建步骤中放入的捆绑包一样。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12365024

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档