Issue #400 has been updated by Ruben Kerkhof.
Affected version set to 0.24.8
This just happened to me as well. yum-protectbase was renamed to
yum-plugin-protectbase.
Adding --whatprovides to the rpm command solved it for me, but I'm not sure if
this covers all the corner cases.
--- rpm.rb 2009-05-17 01:35:30.321473894 +0200
+++ rpm.rb.orig 2009-05-17 01:44:56.435519516 +0200
@@ -55,7 +55,7 @@
#NOTE: Prior to a fix for issue 1243, this method potentially returned
a cached value
#IF YOU CALL THIS METHOD, IT WILL CALL RPM
#Use get(:property) to check if cached values are available
- cmd = ["-q", @resource[:name], "--whatprovides", "--nosignature",
"--nodigest", "--qf", "#{NEVRAFORMAT}\n"]
+ cmd = ["-q", @resource[:name], "--nosignature", "--nodigest", "--qf",
"#{NEVRAFORMAT}\n"]
begin
output = rpm(*cmd)
----------------------------------------
Feature #400: yum software provider doesn't handle virtual packages
http://projects.reductivelabs.com/issues/400
Author: bbaetz -
Status: Needs design decision
Priority: Normal
Assigned to: lutter -
Category: yumrepo
Target version: unplanned
Complexity: Unknown
Patch: None
Affected version: 0.24.8
Keywords:
ethereal has been renamed to wireshark. The package has been renamed, but the
old package also provides ethereal:
<pre>
[r...@techteam ~]# rpm -q --provides wireshark
...
ethereal
...
</pre>
<pre>
package { ethereal:
provider => yum,
}
</pre>
installs the package (since yum resolves "yum install ethereal"), but claims
that it wasn't installed:
<pre>
debug: package provider yum: Executing '/bin/rpm -q ethereal --qf '%{NAME}
%{VERSION}-%{RELEASE}
_
debug: //techteam/package=ethereal: Changing ensure
debug: //techteam/package=ethereal: 1 change(s)
debug: //techteam/package=ethereal/ensure: setting present (currently absent)
debug: package provider yum: Executing '/usr/bin/yum -y install ethereal'
debug: package provider yum: Executing '/bin/rpm -q ethereal --qf '%{NAME}
%{VERSION}-%{RELEASE}
_
/usr/lib/ruby/site_ruby/1.8/puppet/provider/package/yum.rb:14:in @install'
/usr/lib/ruby/site_ruby/1.8/puppet/type/package.rb:33:in @set_present'
/usr/lib/ruby/site_ruby/1.8/puppet/type/state.rb:149:in @send'
/usr/lib/ruby/site_ruby/1.8/puppet/type/state.rb:149:in @call_valuemethod'
/usr/lib/ruby/site_ruby/1.8/puppet/type/state.rb:354:in @set'
/usr/lib/ruby/site_ruby/1.8/puppet/type/state.rb:429:in @sync'
/usr/lib/ruby/site_ruby/1.8/puppet/statechange.rb:48:in @go'
/usr/lib/ruby/site_ruby/1.8/puppet/statechange.rb:94:in @forward'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:77:in @apply'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:69:in @collect'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:69:in @apply'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:176:in @evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:348:in @thinmark'
/usr/lib/ruby/1.8/benchmark.rb:293:in @measure'
/usr/lib/ruby/1.8/benchmark.rb:307:in @realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:347:in @thinmark'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:175:in @evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:168:in @collect'
/usr/lib/ruby/site_ruby/1.8/puppet/transaction.rb:168:in @evaluate'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:116:in @apply'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:460:in @run'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:208:in @benchmark'
/usr/lib/ruby/1.8/benchmark.rb:293:in @measure'
/usr/lib/ruby/1.8/benchmark.rb:307:in @realtime'
/usr/lib/ruby/site_ruby/1.8/puppet/util.rb:207:in @benchmark'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:459:in @run'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:373:in @lock'
/usr/lib/ruby/site_ruby/1.8/puppet/client/master.rb:449:in @run'
/usr/sbin/puppetd:421
err: //techteam/package=ethereal/ensure: change from absent to present failed:
Could not find package ethereal
</pre>
The yum provider (and the rpm one?) should probably use "rpm -q --whatprovides
<package>" instead?
(The real package name is needed for 'rpm -e', so this may also affect the
purge stuff)
--
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://reductivelabs.com/redmine/my/account
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Puppet Bugs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/puppet-bugs?hl=en
-~----------~----~----~----~------~----~------~--~---