I have Puppet 3.6.2 on CentOS 7 server acting as Puppetmaster. I had r10k 1.2.1 installed and I changed my ensure to 1.3.4. My other Puppetmaster running CentOS 6 had no problem with this (except for NOTICE output being printed as an error). The CentOS 7 system fails with the following:
Debug: Executing '/usr/bin/gem install -v 1.3.4 --no-rdoc --no-ri r10k '
Error: Could not update: Execution of '/usr/bin/gem install -v 1.3.4 --no-rdoc --no-ri r10k ' returned 1: ERROR: Can't use --version w/ multiple gems. Use name:ver instead.
<snip trace output>
Error: /Stage[main]/R10k::Install/Package[r10k]/ensure: change from ["1.2.1"] to 1.3.4 failed: Could not update: Execution of '/usr/bin/gem install -v 1.3.4 --no-rdoc --no-ri r10k ' returned 1: ERROR: Can't use --version w/ multiple gems. Use name:ver instead.
If I run that "gem install" command outside Puppet, on the same server, it works just fine.
# /usr/bin/gem install -v 1.3.4 --no-rdoc --no-ri r10k
Fetching: r10k-1.3.4.gem (100%)
NOTICE
======
If you are upgrading from 1.1.0 and are using multiple sources, please read
this. (If not, feel free to continue with your regularly scheduled day.)
for environments to be prefixed with the source name so that multiple sources
installed into the same directory would not overwrite each other. However
prefixing was automatically enabled and would break existing setups where
multiple sources were cloned into different directories.
Because this introduced a breaking change, SemVer dictates that the automatic
prefixing has to be rolled back. Prefixing can be enabled but always defaults
to off. If you are relying on this behavior you will need to update your r10k.yaml
to enable prefixing on a per-source basis.
information.
Successfully installed r10k-1.3.4
1 gem installed
# echo $?
0
- Trey