The gem-provider should not rely on the $PATH for the default gem – it must explicitly invoke the gem-executable appropriate for the underlying OS. On Linux that's /usr/bin/gem, on FreeBSD that's typically /usr/local/bin/gem and so on.
The gem-provider must allow specifying an alternative gemcmd. People have been asking for this for years. Something like:
Package providers now support a targeted package management command
Puppet package providers use `which` to find the first package management command (for example: `gem` for Ruby, `pip` for Python) in the `PATH`. That prevented Puppet from managing other installations of the same software.
This release adds a `targetable` feature to the Package type, allowing Package providers to implement a `command` attribute. The gem and pip providers now implement that attribute.
This feature allows Puppet to manages the packages in software collections (multiple versions of the same software) such as Red Hat Software Collections.