[chef] Re: Re: Re: Re: What is the difference between the following following 2 gem installation methods?


Chronological Thread 
  • From: Hector Castro < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: What is the difference between the following following 2 gem installation methods?
  • Date: Mon, 12 Mar 2012 17:06:39 -0400

In a scenario where you use the following approach to make a gem available immediately:

    r = gem_package "right_aws" do
      version node['aws']['right_aws_version']
      action :nothing
    end

    r.run_action(:install)

Is there an established way to execute `include_recipe` before?  I'm running into a situation where the gem I want available immediately needs packages for compiling native extensions.  I'd like `include_recipe "build-essential"` to execute first.

Right now I'm using something like this to replicate the build-essential cookbook:

    fog_dependencies.each do |fog_dependency|
      d = package fog_dependency do
        action :nothing
      end

      d.run_action(:install)
    end

--
Hector


On Mon, Mar 12, 2012 at 01:11, Joshua Timberman < "> > wrote:
The provider is idempotent and will not attempt to install the gem if it is installed. 
Thanks Guys! for clarifying.

Is there any way to make the gem installation conditional? Like `only_if` ? So that the chef-client doesn't install those gems in each run?

-------------------------------------------
@millisami
~ Sachin Sagar Rai
Ruby on Rails Developer
http://tfm.com.np
http://nepalonrails.tumblr.com
Sent with Sparrow

On Thursday, March 8, 2012 at 8:23 PM, Bryan McLellan wrote:

On Thu, Mar 8, 2012 at 4:43 AM, Sachin Sagar Rai < " target="_blank"> > wrote:
What is the difference between the following following 2 gem installation
methods?

    gem_package "mysql" do
      action :install
    end

This is used to install a gem to your system, such as when you're
installing a Ruby application to run as a service.

    r = gem_package "right_aws" do
      version node['aws']['right_aws_version']
      action :nothing
    end

    r.run_action(:install)

    require 'rubygems'
    Gem.clear_paths

This is used to install a gem immediately so you can use the gem in a
Chef recipe. In Chef 0.10.10+ this will be replaced by:

chef_gem "right_aws" do
version node['aws']['right_aws_version']
end


Bryan





Archive powered by MHonArc 2.6.16.

§