Forge Home


Puppet types and providers for Gentoo portage


10,256 latest version

3.8 quality score

We run a couple of automated
scans to help you access a
module's quality. Each module is
given a score based on how well
the author has formatted their
code and documentation and
modules are also checked for
malware using VirusTotal.

Please note, the information below
is for guidance only and neither of
these methods should be considered
an endorsement by Puppet.

Version information

  • 2.0.2 (latest)
  • 2.0.1
  • 2.0.0
  • 2.0.0-rc1 (pre-release)
  • 1.1.1
  • 1.1.0
  • 1.0.1
  • 1.0.0
  • 1.0.0-rc4 (pre-release)
  • 1.0.0-rc3 (pre-release)
  • 1.0.0-rc2 (pre-release)
  • 1.0.0-rc1 (pre-release)
  • 0.1.0
released Oct 31st 2013
This module has been deprecated by its author since May 15th 2020.

The author has suggested gentoo-portage as its replacement.

Start using this module


adrien/portage — version 2.0.2 Oct 31st 2013

DEPRECATED - Puppet Gentoo Portage Module

This module is deprecated. Please update your links:

Provides Gentoo Portage features for Puppet.

Travis Test status: Build



package_use { 'app-admin/puppet':
  use     => ['flag1', 'flag2'],
  target  => 'puppet-flags',
  version => '>=3.0.1',
  ensure  => present,

use can be either a string or an array of strings.


package_keywords { 'app-admin/puppet':
  keywords => ['~x86', '-hppa'],
  target   => 'puppet',
  version  => '>=3.0.1',
  ensure   => present,

keywords can be either a string or an array of strings.


package_unmask { 'app-admin/puppet':
  target  => 'puppet',
  version => '>=3.0.1',
  ensure  => present,


package_mask { 'app-admin/puppet':
  target  => 'tree',
  version => '>=3.0.1',
  ensure  => present,


The default location of make.conf is /etc/portage/make.conf If you want to change it, you should do the following:

class { 'portage':
  make_conf = '/etc/make.conf',

In order to add entries to make.conf:

portage::make_conf { 'use':
  content => 'flag1 flag2',
  ensure  => present,
portage::make_conf { 'portdir_overlay':
  content => '/var/lib/layman',
  ensure  => present,

Changes in the USE variable will also trigger re-emerge of the affected packages.


This module provides a wrapper to the native package type:

portage::package { 'app-admin/puppet':
  use              => ['-minimal', 'augeas'],
  use_version      => '>=3.0.1',
  keywords         => ['~amd64', '~x86'],
  keywords_version => '>=3.0.1',
  mask             => '<=2.3.17',
  unmask           => '>=3.0.1',
  target           => 'puppet',
  target_keywords  => 'puppet-keywords',
  ensure           => '3.0.1',

If no target_{keywords,use,mask,unmask} is specified, then the value of target is being used. The variables keywords, mask and unmask also accept the special value 'all', that will create versionless entries. (This applies only to portage::package, if you want versionless entries in any of the above package_* types, you can just omit the version attribute.) Any change in portage::package will also trigger the appropriate re-emerge to the affected package.


All make.conf variables and most of the eselect modules are shown by facter


The eselect type/provider checks for the current state of an eselect module by reading the variable of the equivalent fact.

eselect { 'ruby':
  set => 'ruby19',

For eselect modules that have submodules (eg php):

eselect { 'php_apache2':
  set => 'php5.3',

See Also