community.general.portage – Package manager for Gentoo

Note

This plugin is part of the community.general collection.

To install it use: ansible-galaxy collection install community.general.

To use it in a playbook, specify: community.general.portage.

Synopsis

  • Manages Gentoo packages

Requirements

The below requirements are needed on the host that executes this module.

  • gentoolkit

Parameters

Parameter Choices/Defaults Comments
changed_use
boolean
    Choices:
  • no ←
  • yes
Include installed packages where USE flags have changed, except when
flags that the user has not enabled are added or removed
(--changed-use)
deep
boolean
    Choices:
  • no ←
  • yes
Consider the entire dependency tree of packages (--deep)
depclean
boolean
    Choices:
  • no ←
  • yes
Remove packages not needed by explicitly merged packages (--depclean)
If no package is specified, clean up the world's dependencies
Otherwise, --depclean serves as a dependency aware version of --unmerge
getbinpkg
boolean
    Choices:
  • no ←
  • yes
Prefer packages specified at PORTAGE_BINHOST in make.conf
jobs
integer
Specifies the number of packages to build simultaneously.
Since version 2.6: Value of 0 or False resets any previously added
--jobs setting values
keepgoing
boolean
    Choices:
  • no ←
  • yes
Continue as much as possible after an error.
loadavg
float
Specifies that no new builds should be started if there are
other builds running and the load average is at least LOAD
Since version 2.6: Value of 0 or False resets any previously added
--load-average setting values
newuse
boolean
    Choices:
  • no ←
  • yes
Include installed packages where USE flags have changed (--newuse)
nodeps
boolean
    Choices:
  • no ←
  • yes
Only merge packages but not their dependencies (--nodeps)
noreplace
boolean
    Choices:
  • no
  • yes ←
Do not re-emerge installed packages (--noreplace)
oneshot
boolean
    Choices:
  • no ←
  • yes
Do not add the packages to the world file (--oneshot)
onlydeps
boolean
    Choices:
  • no ←
  • yes
Only merge packages' dependencies but not the packages (--onlydeps)
package
list / elements=string
Package atom or set, e.g. sys-apps/foo or >foo-2.13 or @world

aliases: name
quiet
boolean
    Choices:
  • no ←
  • yes
Run emerge in quiet mode (--quiet)
quietbuild
boolean
    Choices:
  • no ←
  • yes
Redirect all build output to logs alone, and do not display it
on stdout (--quiet-build)
quietfail
boolean
    Choices:
  • no ←
  • yes
Suppresses display of the build log on stdout (--quiet-fail)
Only the die message and the path of the build log will be
displayed on stdout.
state
string
    Choices:
  • present ←
  • installed
  • emerged
  • absent
  • removed
  • unmerged
  • latest
State of the package atom
sync
string
    Choices:
  • web
  • yes
  • no
Sync package repositories first
If yes, perform "emerge --sync"
If web, perform "emerge-webrsync"
update
boolean
    Choices:
  • no ←
  • yes
Update packages to the best version available (--update)
usepkg
boolean
    Choices:
  • no ←
  • yes
Tries to use the binary package(s) in the locally available packages directory.
usepkgonly
boolean
    Choices:
  • no ←
  • yes
Merge only binaries (no compiling). This sets getbinpkg=yes.
verbose
boolean
    Choices:
  • no ←
  • yes
Run emerge in verbose mode (--verbose)

Examples

- name: Make sure package foo is installed
  community.general.portage:
    package: foo
    state: present

- name: Make sure package foo is not installed
  community.general.portage:
    package: foo
    state: absent

- name: Update package foo to the latest version (os specific alternative to latest)
  community.general.portage:
    package: foo
    update: yes

- name: Install package foo using PORTAGE_BINHOST setup
  community.general.portage:
    package: foo
    getbinpkg: yes

- name: Re-install world from binary packages only and do not allow any compiling
  community.general.portage:
    package: '@world'
    usepkgonly: yes

- name: Sync repositories and update world
  community.general.portage:
    package: '@world'
    update: yes
    deep: yes
    sync: yes

- name: Remove unneeded packages
  community.general.portage:
    depclean: yes

- name: Remove package foo if it is not explicitly needed
  community.general.portage:
    package: foo
    state: absent
    depclean: yes

Authors

  • William L Thomson Jr (@wltjr)

  • Yap Sok Ann (@sayap)

  • Andrew Udvare (@Tatsh)