簡體   English   中英

最新的紅寶石廚師食譜

[英]Up-to-date Chef cookbook for ruby

是否有最新的紅寶石食譜? 我無法在opscode cookbook網站上找到一個。 即紅寶石1.9.3或1.9.2p280。

我剛剛更新了 Carlo Zottman的紅寶石1.9.x食譜 (在吃午餐時注意到這個問題,在寫一個拉動請求之前,哈​​哈...)

唯一的依賴是來自opscode cookbook網站的標准build-essential和apt cookbook。

關於何時可能需要這樣的食譜的討論,我在使用rbenv食譜(以及其他各種食譜) 之前使用它從我的12.04.01流浪盒上的ruby 1.8升級到ruby 1.9。

我意識到我應該能夠使用rbenv cookbook來安裝1.9.3,但是經過幾個小時的不成功,我意識到我對源安裝感到更滿意,因為它使我的整個食譜堆棧不那么脆弱。 並且rbenv安裝1.9.3的shell腳本作為流浪者用戶寫起來很簡單。

更新

我找到了一種替代方法,它具有更少的依賴性(是的!)我正在使用Fletcher Nichol的烹飪書:

  • ruby_build從Opscode公司社區頁面
  • 來自github的chef-rbenv (與opscode的rbenv cookbook不同)

當然,嚴格來說,你可以使用ruby_build安裝你喜歡的1.9並停止,但我也想要rbenv。

我已經在我的設置中包含了一些片段(當然,還有更多的Berksfile和Vagrantfile,但這些是相關的部分。)唯一真正棘手的部分是chef-rbenv cookbook的本地名稱必須是rbenv if你想要使用任何現成的食譜,包括來自食譜的其他現成食譜,因為它將自己稱為rbenv。 Berkshelf做了那件小事。

Berksfile

group :ruby do
  cookbook 'ruby_build'
  cookbook 'rbenv', git: 'https://github.com/fnichol/chef-rbenv'
end

Vagrantfile:

config.vm.provision :chef_solo do |chef|
  chef.cookbooks_path = 'chef/cookbooks'
  chef.roles_path     = 'chef/roles'
  chef.json           = {
    'rbenv' => {
      'global' => '1.9.3-p194',
      'rubies' => [ '1.9.3-p194' ],
      'gems'   => {
        '1.9.3-p194' => [
          { 'name'   => 'bundler' }
        ]
      }
    }
  }
  chef.add_role 'ruby'
end

廚師/角色/ ruby​​.json:

{
  "name": "ruby",
  "description": "Install ruby and rbenv",
  "chef_type": "role",
  "json_class": "Chef::Role",

  "run_list": [
    "recipe[ruby_build]",
    "recipe[rbenv::system]"
  ]
}

最后的評論是,一旦我解決了解決方案,我意識到Victor的答案很可能是同一件事的廚師服務器版本。 到目前為止我只使用過廚師獨奏,所以我不確定。

我不確定你是否會找到一個更新Ruby的系統版本,因為廚師是建立在Ruby之上的,因此在運行時會自行更新,我不確定是否可行。

但是,我確實看到過RBenv和RVM等Ruby版本管理器的Chef cookbook,比如rbenv的這個 ,以及RVM的這個 這是服務器還是OSX開發箱? 如果它適用於后者,那么在配置機器時我發現Smeagol是一個非常方便的快捷方式。

我認為最簡單的方法是使用兩本烹飪書:ruby_build和rbenv。 在你的角色( <proj>/roles/role_name.rb ):

name "your-role-name"

description "All the shelves!"

run_list(
  "recipe[ruby_build]",
  "recipe[rbenv::system]"
)

override_attributes(
  'rbenv' => {
    'global' => '1.9.2-p280',
    'rubies' => [
      '1.9.2-p280'
    ]
  }
)

將此角色(最好在需要這些紅寶石的其他角色之前)添加到運行列表中應該這樣做。

編輯運行列表: knife node edit <node name>

別忘了更新角色! knife role from file role_name.rb

最后,rubyenv可能比rvm更輕松地管理紅寶石。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM