In regard to: [Puppet Users] RHEL 6 Protected multilib versions Requirment...:

(/Stage[main]/Libstdc/Package[libstdc++.i686]/ensure) change from absent to
present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install
libstdc++.i686' returned 1: Error: Protected multilib versions:
libstdc++-4.4.6-4.el6.i686 != libstdc++-4.4.6-3.el6.x86_64#012 You could
try using --skip-broken to work around the problem#012 You could try
running: rpm -Va --nofiles --nodigest

the .pp :

class libstdc {

Class["rhn"]->Class["libstdc"]

Are you really intending to have Class['rhn'] applied *before*
Class['libstdc'], because that's what your arrow chaining says.  I would
assume you're trying to install both archs because RHN Satellite needs
both but doesn't have the 32 bit version as an explicit dependency.
If that's the case, you should swap what side of the -> the two classes
are on.

package { "libstdc++.i686":
ensure => installed,
}

package { "libstdc++":
ensure => installed,
}

As John said, your best bet is to get the 32 bit version installed
because of a dependency of something else.  It's frankly ridiculous
that Red Hat provides a product that doesn't do this correctly, but
we can work around that, even without having to try repackage RHN
Satellite.

This can be done very easily by creating a package that contains no files
at all, but lists other packages as requirements.  The trick is to have
empty %prep/%build/%install/%files sections of your spec file, but list
either

- package names
- exact shared library SONAMES
- (as a last resort) full paths to a file or library

in the "Requires:" entries for the RPM.  An example spec file you might
start with to build an RPM is included after my signature.  You would
just need a RHEL box with the 'rpm-build' package installed, something
like

        rpmbuild -ba -v rhn-satellite-32bit-deps.spec

and then you put that package in your local repo and have puppet

        package { 'rhn-satellite-32bit-deps':
                ensure => installed,
        }

This virtual package then pulls in whatever dependencies you have listed.

Tim
--
Tim Mooney                                             tim.moo...@ndsu.edu
Enterprise Computing & Infrastructure                  701-231-1076 (Voice)
Room 242-J6, IACC Building                             701-231-8541 (Fax)
North Dakota State University, Fargo, ND 58105-5164



Summary: pull in the 32 bit dependencies for RHN Satellite
Name: rhn-satellite-32bit-deps
Version: 1.0
Release: 1
Group: Local/Whatever
License: Copyright (C) your organization here
URL: http://yourcompany/whatever/you/want/here
Vendor: Your Company and possibly OU here
Distribution: Your distribution name here

#
# Preference #1: require package names, like "make" or "kernel-headers"
# #Requires:

#
# If you need specific SONAME and arch for a library, that can be
# accomplished like this
#
# the 32 bit version
Requires: libstdc++.so.6
# the 64 bit version
#Requires: libstdc++.so.6()(64bit)


#
# Last resort, only use if others don't work: specify a full path to the file
# that some other RPM should be installing.  This can generally be
# accomplished better by using a package name instead.
#
#Requires: /usr/bin/bash

%description
This package contains no files.  It exists solely to specify other
packages that should be installed when this virtual package is installed.

%prep
# no software to extract and prepare for compilation
exit 0

%build
# nothing to build
exit 0

%install
# nothing to install
exit 0

%files
# no files contained in this RPM.

--
You received this message because you are subscribed to the Google Groups "Puppet 
Users" group.
To post to this group, send email to puppet-users@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.

Reply via email to