Well as a starter --

This is a provider called rpm_plus.rb -- I found most of it floating
around on the web and I seem to recall tweaking some small part of it,
although I don't recall now what it was... in any event this works and
is in use in our environment.  Provider looks like:

Puppet::Type.type(:package).provide :rpm_plus, :parent => :rpm, :source =>
:rpm do

    has_feature :versionable

    desc "Support via ``rpm``."
    commands :rpm_plus => "rpm"
    def rpm(*args)
      rpm_plus(*args + @resource[:vendor].split(" "))
    end
 end

You'd throw this in a file called rpm_plus.rb and stash it in
<module>/lib/puppet/provider/package/.  What this basically does is
wrap the existing RPM provider with another one that lets you pass
arguments in a "vendor" attribute.

You would then install your RPM package in your manifest the following way:

   package{ 'My_package':
      ensure => 'version_number',
      provider => rpm_plus,
      source = "<my_package_location>",
      vendor => "--prefix=/home/ads",
   }

The key bits are the provider => rpm_plus attribute, which tells
Puppet to override its default yum provider, and the vendor attribute,
into which you pass your additional arguments.

-Eric


On Thu, Sep 9, 2010 at 4:27 AM, SiD <self...@gmail.com> wrote:
> Thanks for your quick answer.
> I've already analysed the code, but it does not really help me. Do I
> need to write a new provider in Ruby, or can I override the original
> one ?
>
> Thanks again !
>
> On Sep 8, 10:45 am, mohit chawla <mohit.chawla.bin...@gmail.com>
> wrote:
>> You can probably start by looking at the code for the various
>> types/providers under puppet's code directory. On Debian, for eg., the code
>> for rpm package provider is under
>> /usr/lib/ruby/1.8/puppet/provider/package/rpm.rb .
>>
>> On Wed, Sep 8, 2010 at 1:40 PM, SiD <self...@gmail.com> wrote:
>> > Hello,
>>
>> > I would like to go in depth with Puppet, but I haven't found any good
>> > documentation about my issue (I've just ordered the official Puppet
>> > book, hope it helps).
>> > I need to install RPM packages with specified install-options, like --
>> > prefix. But the package type does not support this kind of option.
>> > Does anyone have an idea how to redefine a type ?
>>
>> > Thanks !
>>
>> > --
>> > You received this message because you are subscribed to the Google Groups
>> > "Puppet Users" group.
>> > To post to this group, send email to puppet-us...@googlegroups.com.
>> > To unsubscribe from this group, send email to
>> > puppet-users+unsubscr...@googlegroups.com<puppet-users%2bunsubscr...@googlegroups.com>
>> > .
>> > For more options, visit this group at
>> >http://groups.google.com/group/puppet-users?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Puppet Users" group.
> To post to this group, send email to puppet-us...@googlegroups.com.
> To unsubscribe from this group, send email to 
> puppet-users+unsubscr...@googlegroups.com.
> For more options, visit this group at 
> http://groups.google.com/group/puppet-users?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To post to this group, send email to puppet-us...@googlegroups.com.
To unsubscribe from this group, send email to 
puppet-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/puppet-users?hl=en.

Reply via email to