Issue #2662 has been updated by Todd Zullinger.
If an arch parameter is added, won't that make a backwards-incompatible change?
Currently, for folks that don't need a specific version, package { 'foo.i386':
} works. Would an arch parameter change that behavior? If not, then it may be
needlessly confusing to require an arch parameter only when a version is used
with the ensure parameter.
----------------------------------------
Bug #2662: Yum package arch and version ensuring failing
https://projects.puppetlabs.com/issues/2662
Author: David Ward
Status: Needs design decision
Priority: High
Assignee: Markus Roberts
Category: package
Target version: queued
Affected Puppet version: 0.24.7
Keywords: yum provider version arch ensure
Branch:
After lots of trial and error I found a bug in our current Puppet version
Having a package line like so:
package { "firefox.x86_64": ensure => "3.0.12-1.el5.centos", require =>
Package["xulrunner.x86_64"] }
Would fail with debug output:
*_
debug:
//Node[om012274.drd.int]/workstation/workstation_centos53/mozillasuite53/Package[firefox.x86_64]:
Changing ensure
debug:
//Node[om012274.drd.int]/workstation/workstation_centos53/mozillasuite53/Package[firefox.x86_64]:
1 change(s)
debug: Package[firefox.x86_64](provider=yum): Ensuring => 3.0.12-1.el5.centos
debug: Puppet::Type::Package::ProviderYum: Executing '/usr/bin/yum -d 0 -e 0 -y
install firefox.x86_64-3.0.12-1.el5.centos'
debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm -q
firefox.x86_64 --nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}|
%{VERSION} %{RELEASE}
%{ARCH}
'
err:
//Node[om012274.drd.int]/workstation/workstation_centos53/mozillasuite53/Package[firefox.x86_64]/ensure:
change from absent to 3.0.12-1.el5.centos failed: Could
not update: Could not find package firefox.x86_64 at
/etc/puppet/manifests/CentOS.pp:149_*
It didn't matter if I listed ver-release or just ver, same sort of error; it
appends the version-[release] to the package name and arch. Which obviously
fails as yum packages must be referred to like so:
name
name.arch
name-ver
name-ver-rel
name-ver-rel.arch
name-epoch:ver-rel.arch
epoch:name-ver-rel.arch
So if I omitted the arch and changed the line to:
package { "firefox": ensure => "3.0.12-1.el5.centos", require =>
Package["xulrunner.x86_64"] }
We would have more success with the 64bit version but it would try and bring
the 32bit Firefox version too along with its dependencies. Not what I wanted.
*_debug: Package[firefox](provider=yum): Ensuring => 3.0.12-1.el5.centos.x86_64
debug: Puppet::Type::Package::ProviderYum: Executing '/usr/bin/yum -d 0 -e 0 -y
install firefox-3.0.12-1.el5.centos.x86_64'
debug: Puppet::Type::Package::ProviderYum: Executing '/bin/rpm -q firefox
--nosignature --nodigest --qf %{NAME} %|EPOCH?{%{EPOCH}}:{0}| %{VERSION}
%{RELEASE} %{ARCH}
'
err:
//Node[om012274.drd.int]/workstation/workstation_centos53/mozillasuite53/Package[firefox]/ensure:
change from 3.0.12-1.el5.centos to 3.0.12-1.el5.centos.x86_64 failed: Could
not update: Failed to update to version 3.0.12-1.el5.centos.x86_64, got version
3.0.12-1.el5.centos instead at /etc/puppet/manifests/CentOS.pp:149_*
So chatting on IRC and more trial and error I found this is the only way to get
it to work:
package { "firefox-3.0.12-1.el5.centos.x86_64": ensure => "present", require
=> Package["xulrunner.x86_64"] }
So this side-steps puppets version management though.
This may be fixed in a newer version. I haven't tried yet.
--
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 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.