Issue #17616 has been updated by Josh Nichols.

I ran into  this bug again, in a different context. I took a bit more time to 
dig into it, and found a good place to inject `Bundler.with_clean_env`. I've 
sent two pull requests, one for 2.7.x and  one for 3.0.x. I originally wrote it 
against master, and was able to cherry-pick to 3.0.x, so should apply cleanly 
to 3.1.x too.

* https://github.com/puppetlabs/puppet/pull/1484
* https://github.com/puppetlabs/puppet/pull/1485

The way I was testing on was a small development server, with a Gemfile like:

<pre>source "https://rubygems.org";

gem "puppet", :path => "/path/to/checkout/of/my/fork"</pre>

Then running:

<pre>bundle install --binstubs
sudo bin/puppet ^Cply --debug -e 'package {foreground: ensure => latest, 
provider => gem}'</pre>

Without the patch, it failed with the error Andrew Parker posted. With the 
patch, it installs without error.
----------------------------------------
Bug #17616: Package update via Gem provider fails when running Puppet via 
bundler
https://projects.puppetlabs.com/issues/17616#change-83384

Author: Björn Albers
Status: Accepted
Priority: Normal
Assignee: 
Category: package
Target version: 
Affected Puppet version: 2.6.10
Keywords: gem, bundler, bundle, package, provider
Branch: 


Given a rubygem / package with dependencies to other package.
When I try do manage that package with Puppet all is fine.
But when I apply the same manifest with Puppet executed via Bundler then I get 
an error (Installing a package w/o dependencies, i.e. rake, works).
To my understanding installing Puppet with bundler is best practice when 
developing & testing modules, so this might have some relevance.
Here's my TPS report:

    # Bad:
    $ sudo bin/puppet apply --verbose --no-report foreground.pp
    info: Applying configuration version '1352903073'
    err: /Stage[main]//Package[foreground]/ensure: change from absent to latest 
failed: Could not update: Execution of '/usr/bin/gem install 
--include-dependencies --no-rdoc --no-ri foreground' returned 1: ERROR:  Error 
installing foreground:
    foreground requires mixlib-cli (~> 1.2.2)
    INFO:  `gem install -y` is now default and will be removed
    INFO:  use --ignore-dependencies to install only the gems you list
    at /Users/bjoern/Documents/puppet-zabbix_osx/foreground.pp:4
    notice: Finished catalog run in 78.69 seconds
    $ bin/puppet --version
    2.7.19

    # Good:
    $ sudo puppet apply --verbose --no-report foreground.pp 
    info: Applying configuration version '1352903176'
    notice: Finished catalog run in 3.82 seconds
    $ puppet --version
    2.7.19

    # Context:
    $ ruby --version
    ruby 1.8.7 (2011-12-28 patchlevel 357) [universal-darwin11.0]
    $ bundle --version
    Bundler version 1.2.1
    $ cat foreground.pp 
    package { 'foreground':
      ensure   => latest,
      provider => gem,
    }
    $ sw_vers 
    ProductName:    Mac OS X
    ProductVersion: 10.7.4
    BuildVersion:   11E53
    $ gem --version
    1.8.24

PS: This might be a bug in bundler / rubygems / whatever, but I think it should 
at least be documented here.


-- 
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.


Reply via email to