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.