eselect-profile
Switch system profile
TLDR
List available profile symlink targets with their numbers
Set the /etc/portage/make.profile symlink by name or number from the list command
Show the current system profile
SYNOPSIS
eselect profile {list | set profile_id | set profile_name}
PARAMETERS
list
Displays a numbered list of all available system profiles, marking the currently active profile with an asterisk.
set profile_id
Switches the active system profile to the one identified by the numeric profile_id from the list output. This is the most common and recommended method for setting a profile.
set profile_name
Changes the active system profile using its full path or descriptive name (e.g., default/linux/amd64/17.0/desktop). While possible, using the numeric ID is generally more robust.
DESCRIPTION
The eselect-profile command is a module of the broader eselect utility in Gentoo Linux, specifically designed for managing system profiles. System profiles are foundational to Gentoo's highly customizable nature, defining the base architecture, default USE flags, and package sets for a given installation (e.g., desktop, server, hardened). This command provides an interactive and user-friendly interface to list all available profiles and to switch the active system profile. Changing the profile dictates how Portage, Gentoo's package manager, resolves dependencies and compiles software, profoundly impacting the system's functionality, performance, and security. It is a critical tool for maintaining and adapting a Gentoo system to specific needs.
CAVEATS
Only applicable to Gentoo Linux distributions.
Incorrectly switching profiles can lead to system instability or breakages due to changes in USE flags and package requirements.
Always review potential impacts before changing the profile, especially on production systems. After changing a profile, it's often necessary to run emerge -uDNa world to reconcile package dependencies with the new profile's settings.
WHAT ARE GENTOO SYSTEM PROFILES?
Gentoo system profiles are directories located under /usr/portage/profiles that define the base set of USE flags, ARCH, and other Portage variables for a specific system configuration. They are fundamental to Gentoo's flexibility, allowing users to tailor their system from the ground up (e.g., server, desktop, hardened, musl). The active profile is symlinked from /etc/portage/make.profile and is crucial for Portage to correctly resolve dependencies and compile packages according to the chosen system type.
CHECKING THE CURRENT PROFILE
You can always check your currently active profile by examining the target of the symlink at /etc/portage/make.profile. Alternatively, running eselect profile list will display all available profiles, with the currently active one marked by an asterisk (*).
HISTORY
Part of the broader 'eselect' utility, which has been a core component of Gentoo Linux since its early days, providing a centralized way to manage system-wide settings like kernel symlinks, OpenRC services, and Python interpreters. The 'profile' module specifically addresses the critical need to manage system profiles, which dictate the fundamental characteristics of a Gentoo installation and are vital for maintaining system consistency and optimization.