ego is Funtoo's official system personality management tool, designed to eventually replace the venerable
eselect from Gentoo Linux. Daniel Robbins created a new meta-tool to replace eselect because eselect has a couple of design issues. It requires extensions to be written as shell scripts, which is a big limitation. With the advent of Funtoo's modular profile system,
eselect profile was becoming cumbersome to use, and I needed to make the tool faster and more feature-rich. Ultimately, shell scripts are too slow and too hard to use to implement advanced functionality.
ego is a meta-tool that works similarly to eselect. Typing
ego will show a list of available commands. Some of the benefits of ego over eselect are that ego modules can be implemented in any language. In addition, the ego architecture is designed so that the modules are themselves stand-alone commands, which allows you to access these sub-commands using shortcuts. For example,
epro is a shortcut for
x86-64bit, this defines the processor type and support of your system. This is defined when your stage was built and should not be changed.
- defines whether your system is a
currentsystems will have newer packages unmasked than
stablesystems. This is defined when your stage is built and is typically not changed.
- Defines optimizations for your CPU. The subarch is set at the time the stage3 is built, but can be changed later to better settings if necessary. Be sure to pick a setting that is compatible with your CPU.
- defines the general type of system, such as
desktop, and will set default USE flags appropriate for your needs.
- define various optional settings that you may be interested in enabling.
One arch, build and flavor must be set for each Funtoo Linux system, while mix-ins are optional and you can enable more than one if desired.
Remember that profiles can often be inherited. For example, the
desktop flavor inherits the
workstation flavor settings, which in turn inherits the
audio mix-ins. You can view this by using
root # epro show === Enabled Profiles: === arch: x86-64bit build: current subarch: intel64-haswell flavor: desktop mix-ins: gnome === All inherited flavors from desktop flavor: === workstation (from desktop flavor) core (from workstation flavor) minimal (from core flavor) === All inherited mix-ins from desktop flavor: === X (from workstation flavor) audio (from workstation flavor) dvd (from workstation flavor) media (from workstation flavor) mediadevice-audio-consumer (from media mix-in) mediadevice-base (from mediadevice-audio-consumer mix-in) mediadevice-video-consumer (from media mix-in) mediadevice-base (from mediadevice-video-consumer mix-in) mediaformat-audio-common (from media mix-in) mediaformat-gfx-common (from media mix-in) mediaformat-video-common (from media mix-in) console-extras (from workstation flavor) print (from desktop flavor)
To view available profiles:
root # epro list
Enabled profiles will be highlighted in cyan. Directly enabled profiles will be in bold and have an asterisc
To change the profile arch to x86-64:
root # epro arch x86-64bit
To change the build to current:
root # epro build current
To change the subarch to generic_64:
root # epro subarch generic_64
To change the profile flavor:
root # epro flavor desktop
To add a mix-in:
root # epro mix-ins +gnome
To remove a mix-in:
root # epro mix-ins -gnome
To get a JSON output of your profiles:
root # epro show-json
To get the current value of a given profile:
root # epro get <build