【问题标题】:Requiring a library in the attributes of a Chef cookbook在厨师食谱的属性中需要一个库
【发布时间】:2015-05-26 14:18:32
【问题描述】:

在我的厨师食谱attributes/default.rb 中,我有以下内容:

default['dt'] = ActiveSupport::TimeZone.new('America/Chicago').local_to_utc(Time.now)

在我的recipe/default.rb 我有

chef_gem 'active_support/time'

如果我理解正确的话,它的工作原理和

一样
gem install 'active_support/time'
require 'active_support/time'

但是在运行食谱时我得到了

NameError
---------
uninitialized constant Class::TZInfo

如何解决 NameError?

【问题讨论】:

  • 你有什么问题?
  • 没有问题。

标签: ruby chef-infra require cookbook


【解决方案1】:

在评估任何配方文件之前评估所有属性文件。因此,当您的配方代码运行时,gem 尚未安装。即使它已经存在,它也不会包含在您的属性文件中,因此不会在那里可用。至于如何解决,那是一个棘手的问题。我建议您将属性设置代码从属性文件中移到配方中。通常我对此不屑一顾,但有时这是不可避免的。

【讨论】:

    猜你喜欢
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    • 2014-01-26
    • 2019-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-21
    相关资源
    最近更新 更多