首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >厨师:运行列表中的最后一个菜谱似乎是先运行的。

厨师:运行列表中的最后一个菜谱似乎是先运行的。
EN

Stack Overflow用户
提问于 2013-10-16 12:39:13
回答 1查看 250关注 0票数 0

我有一个运行列表:recipe-A, my-recipe

recipe-A创建/etc/A目录。

my-recipe有以下代码:

代码语言:javascript
复制
...
// create '/etc/A/file-1'
...
File.symlink('/etc/A/file-1', '/etc/A/file-2')
...

因此,当my-recipe运行时,应该已经有了/etc/A目录,这是由recipe-A创建的。但我在厨师第一次跑的时候就发现了这个错误:

代码语言:javascript
复制
================================================================================
Recipe Compile Error in ...
================================================================================

Errno::ENOENT
-------------
No such file or directory - (/etc/A/file-1, /etc/A/file-2)

当显示此错误消息时,我确信没有运行recipe-A。但是,难道recipe-A不应该先运行吗?为什么主厨要检查/etc/A的存在,它是由recipe-A在未运行时创建的?我怎么才能解决这个问题?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-16 13:23:01

不要以ruby代码的形式运行它,使用链接资源创建符号链接。

代码语言:javascript
复制
link "/etc/A/file-2" do
  to "/etc/A/file-1"
end

我确信您的Ruby代码已经在主厨运行的编译阶段期间执行了,这就是为什么第二个菜谱中的代码似乎首先被执行的原因。

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

https://stackoverflow.com/questions/19403665

复制
相关文章

相似问题

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