簡體   English   中英

如何通過廚師安裝rvm / ruby​​ / rails?

[英]How to install rvm/ruby/rails via chef?

首先,我想指出我已經閱讀了這里的問題: 通過Chef安裝RVM / Ruby 1.9.3

我正在嘗試使用VirtualBox / Vagrant在Windows中設置Ruby on Rails環境。 VirtualBox和Vagrant的安裝非常明顯,但是深入研究Vagrant的配置以及像Chef這樣的東西變得不那么清晰了。

我在這里關注博客的說明: http//manuelvanrijn.nl/blog/2013/07/23/developing-ruby-on-rails-on-windows/

其中包括安裝librarian-chef gem來管理cookbook,以及使用以下Cheffile:

#!/usr/bin/env ruby
#^syntax detection

site 'http://community.opscode.com/api/v1'

cookbook 'apt'
cookbook 'git'
cookbook 'sqlite'
cookbook 'mysql'
cookbook 'postgresql'
cookbook 'database', :git => 'git://github.com/manuelvanrijn/cookbook-database.git', :ref => 'grant-roles'
cookbook 'nodejs'
cookbook 'build-essential'
cookbook 'ruby_build'
cookbook 'rbenv', :git => 'git://github.com/fnichol/chef-rbenv.git', :ref => 'v0.7.2'

我的問題是最初啟動我的Vagrant框,我使用的基本框(精確64)帶有ruby 1.8.7p358。

為了獲得一個正常運行的Rails站點,我需要安裝rvm,安裝更新版本的Ruby,然后在我能夠運行rails new rails_site之前安裝Rails

我在這里找到了rvm的食譜: https//github.com/fnichol/chef-rvm

所以我希望完成的是,添加rvm cookbook,自動安裝特定版本的Ruby,然后安裝Rails,這樣我就可以擁有一個開箱即用的功能開發環境。 我知道我可以通過在我的Cheffile末尾添加一行來添加這本食譜,但除此之外,我如何指示rvm安裝特定版本的Ruby,然后再安裝Rails?

要安裝rvm,我已經使用了你指定的 cookbook。 你需要的是將它添加到Cheffile:

cookbook 'rvm', :git => 'git://github.com/fnichol/chef-rvm.git', :ref => '24ecbb0'

我使用過ref,因為上一版本沒有正常工作(不知道它是否已修復,但你可以嘗試我的方式,然后切換並試用更新)。 下一步是將rvm添加到您用於節點的角色:

'recipe[rvm::user]',

在nodefile中指定此角色后(在教程中它是Vagrantfile),您可以像這樣配置rvm安裝:

  'rvm' => {
    'installer_url' => 'https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer',
    'branch' => 'none',
    'version' => '1.17.10',
    'user_installs' => [{        
      'user' => 'someuser',
      'default_ruby' => 'ruby-1.9.3-p286@mygemsetname'
    }]
  }

而已。 RVM應安裝someuserruby-1.9.3-p286@mygemsetname寶石。 要安裝特定的目錄,你需要學習如何編寫自己的食譜其他自定義操作Rails的,這是很容易,你需要登錄為someuser ,cd到DIR你需要和執行gem install ,然后rails new (當然如果你想以用戶身份安裝rvm / rails,而不是在系統范圍內安裝

UPD:要安裝自定義寶石,您可以使用chef-rvm或您自己的食譜:

./site_cookbooks/mycookbook/recipes/default.rb

execute 'install mysql2 gem' do
  command 'gem install mysql2'
  not_if 'gem list | grep mysql2'
end

暫無
暫無

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

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