Issue #13254 has been updated by Charlie Sharpsteen. Keywords changed from yum local_file to yum localinstall customer
Yum can actually install directly from RPM files---this may be preferable to dropping down to executing rpm as yum can do dependency resolution. To add this feature, we would need to teach the yum provider how to use `@resource[:source]`. In the meantime, a possible workaround is to use the Yumrepo type to define a local repository using a `file:///` URL pointing at a directory. Download packages to the directory, use the `createrepo` tool to set up the metadata required by Yum and all package resources should be able to pull packages as normal. There is a Forge module which accomplishes the above: <http://forge.puppetlabs.com/fiddyspence/yumcache> ---------------------------------------- Feature #13254: yum provider should respect "file://" protocol in 'source' parameter https://projects.puppetlabs.com/issues/13254#change-88073 * Author: Jeff Weiss * Status: Accepted * Priority: Normal * Assignee: Charlie Sharpsteen * Category: package * Target version: * Affected Puppet version: * Keywords: yum localinstall customer * Branch: ---------------------------------------- The default package provider on CentOS doesn't use the source parameter. I have a manifest that contains this: <code> <pre> package { 'graphite-web': ensure => installed, source => 'file:///root/manifests/source/graphite-web-0.9.9-1.noarch.rpm', } </pre> </code> It's a system package; I'm telling Puppet where to get it; I expect the manifest to work. It doesn't. As a user (maybe just as a noob), I would expect that since the package is a system type of package (i.e. rpm), I shouldn't need to explicitly specify the provider. If I must, then as a user, I must know the implementation details that for system packages (implicit/provider-less) Puppet will only try the yum provider even though it can't handle the source parameter (or at least a source parameter containing a URI). Here's the logic for how I think it should work: <pre> no provider && no source => system package, use default [yum on CentOS] no provider && source => system package, use (default.supports_source? ? default : URI supportable system package command [rpm on CentOS]) </pre> This works: <code> <pre> package { 'graphite-web': ensure => installed, provider => 'rpm', source => 'file:///root/manifests/source/graphite-web-0.9.9-1.noarch.rpm', } </pre> </code> But I feel like we needn't explicitly include provider. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/puppet-bugs?hl=en. For more options, visit https://groups.google.com/groups/opt_out.
