emerge — configuration — ebuild repository — dispatch-conf
world file — USE flags — ebuilds — profiles
upgrades — using testing packages — binary packages
tools — gentoolkit — eselect
Portage FAQ — cheat sheet — FAQ
This FAQ is a collection of common questions about Gentoo, along with their corresponding answers.
Please note that this document is just a quick reference for some common questions - many of these questions are answered more fully in the official Gentoo documentation, on this wiki.
Read the Gentoo documentation to learn how to use Gentoo, and GNU/Linux more broadly. The main Gentoo documentation is on the wiki, and in the Handbook. More information may be found in man pages, info pages, /usr/share/doc/, upstream, etc. Many commands also support the
How is Gentoo pronounced, and what does it mean?
Gentoo (/ˈdʒɛntuː/) is pronounced "gen-too" (the "g" in "Gentoo" is a soft "g", as in "gentle").
What makes Gentoo different?
Gentoo uses a BSD ports-like system called Portage - a package management system that allows great flexibility installing, maintaining, and updating software. Portage provides compile-time option support via USE flags, conditional dependencies, safe installation of software through sandboxing, use-case adaptable defaults thanks to system profiles, and configuration file protection - amongst many other features. All this functionality comes together to make Gentoo a very adaptable operating system, that can conveniently be tailored to any specific usage when needed, but when left in the default configuration will yield a simple, "sane default", environment.
By default, Gentoo builds (compiles) and installs system packages from source code, specifically to the user's choice of configuration and optimizations - many of which are only available at "compile time". Gentoo provides exceptionally fine-grained control of low-level parameters (compiler flags, architecture choices, base subsystem selection, etc.), both for the system globally, or for individual packages - when required.
Gentoo permits many alternatives for core (system) software, allowing users to adapt with ease the installation to their own needs and preferences - in fact, the user has almost complete control over which packages are installed, or left out. This is a key difference from many other distributions, which are often built around specific subsystems, which cannot be replaced. Because of Gentoo's flexibility, there are no "variants", "editions", "flavors", etc. - there is no need, as everything can be adapted for each use-case from the default installation.
The depth of choice of core software, target architectures, and low-level optimization configuration, is why Gentoo is called a meta-distribution.
Gentoo strives to do things in the simplest possible way, and core Gentoo principles and procedures are easy to understand and master, given just a little effort. The relatively small investment to learn how to use Gentoo will reap dividends for anyone who is to become a substantial user of a Unix(like) operating system. Gentoo may require some reading and a little thought to understand how to use it, but the payoff from the power gained by the new user is considerable.
Gentoo is very actively maintained, and the entire distribution uses a rapidly-paced development and distribution method, termed rolling release: new and updated packages are frequently added to the Gentoo ebuild repository, relevant patches are rapidly applied, documentation is updated on a daily basis, and Portage features are added frequently. The fast turnaround cycle does not compromise on quality: packages start life in the testing branch and are only moved into stable once proved to be reliable; generally the transition time target is a 30 days or less.
Do not confuse rolling release with bleeding edge. Gentoo updates may be fast-paced, but Gentoo is a stable distribution, with exceptional reliability. All packages are fully tested, and must meet high standards. Quality control is a fundamental priority for the project at large.
Things are really unstable when using '-O9 -ffast-math -fomit-frame-pointer' optimizations. What gives?
While Portage optimizes compilation to a specific processor according to the CFLAGS/CXXFLAGS setting, anything other than the defaults for a given processor risk issues and even performance loss. The goal of the Gentoo project has never specifically been to permit low level optimization, even if its architecture does lend itself to this.
Any required CFLAGS should be set on a per-package basis, system-wide optimization above defaults is not recommended.
-O2 flag is the highest that should always work. Anything above
-O3 is not supported by current versions of GCC. Very aggressive optimizations sometimes cause the compiler to streamline the assembly code to the point where it does not quite do the same thing anymore.
Please try to compile using
-O2 -march=native with CFLAGS/CXXFLAGS before reporting a bug.
See the GCC optimization article for more details.
How do I change the root (or any other user's) password?
Use the passwd command to change the password for the user that is logged in. The root user can change another user's password by issuing the command passwd username. For extra options and settings, see passwd's manual page (passwd ).
How do I add a normal user?
The command useradd larry will add a user called "larry". However, this method does not give the user many of the rights needed to work properly on the system, so the following command is preferred:
useradd -m -G users,audio,wheel larry
This will add a user called "larry". The
-m option creates a home directory. The
-G option adds the user to the specified groups:
userswhich is the standard group for interactive users on the system
audiowhich allows the user to access sound devices
wheelwhich allows the user to execute the su command to gain root privileges (if they know the root password)
Why can't a user su to root?
For security reasons, users may only su to root if they belong to the wheel group. To add larry to the wheel group, issue the following command as root:
gpasswd -a larry wheel
Can I upgrade Gentoo from one release to another without reinstalling?
There are no Gentoo releases, packages are updated continually: it is a rolling release distribution (not to be confused with "bleeding edge" - Gentoo is stable by default).
Gentoo packages get updates every day, and though important core packages will be updated from time to time, and new profiles created, there are no specific events that could be termed versions, releases, editions, variants etc. Each time the system is upgraded, everything will be "up to date".
A well-maintained, regularly-updated, installation should never need reinstalling.
Gentoo should be updated regularly (updating daily or every few days is not unreasonable) for security reasons, and to avoid updates becoming complex. See the Gentoo Upgrading Guide for how to keep things in order.
Gentoo requires Internet access, with sufficient stability and capacity, for both installation and updates.
The Release Engineering Project page, the gentoo-announce mailing list, and the Gentoo ebuild repository news items provide information on important changes.
My kernel does not boot, what should I do now?
It isn't obligatory to redo every step of the installation. However, investigating the kernel and all associated steps is necessary. Suppose that Gentoo is installed to the following partition scheme /dev/sda1 being /boot, /dev/sda3 being rootfs (/), and /dev/sda2 being swap space.
Boot from a live environment, then escalate to superuser privileges (necessary for mounting filesystems).
First mount all the partitions:
mount /dev/sda3 /mnt/gentoo # Mount rootfs (/)
mount /dev/sda1 /mnt/gentoo/boot # Mount boot partition
swapon /dev/sda2 # Activate swap
mount --types proc /proc /mnt/gentoo/proc
mount --rbind /sys /mnt/gentoo/sys
mount --make-rslave /mnt/gentoo/sys
mount --rbind /dev /mnt/gentoo/dev
mount --make-rslave /mnt/gentoo/dev
mount --bind /run /mnt/gentoo/run
mount --make-slave /mnt/gentoo/run
Then chroot into the Gentoo environment and configure the kernel:
chroot /mnt/gentoo /bin/bash
env-update && source /etc/profile
Now (de)select anything that was selected wrongly on the previous attempt, recompile, and reinstall the kernel:
make $(portageq envvar MAKEOPTS) && make install modules_install
Exit the chroot and reboot the system.
umount -l /mnt/gentoo/dev /mnt/gentoo/sys
umount /mnt/gentoo/proc /mnt/gentoo/boot /mnt/gentoo
reboot #systemctl reboot for systemd users
Please see this article from the Knowledge Base for further details.
If, on the other hand, the problem lies with the bootloader configuration, follow the same steps, but instead of configuring and compiling the kernel, reconfigure the bootloader (recompilation of the bootloader is usually not necessary).
My proxy requires authentication, what do I have to do?
To have Portage automatically use this scheme, define it in /etc/portage/make.conf:
http_proxy="http://username:email@example.com:portnumber" ftp_proxy="ftp://username:firstname.lastname@example.org:portnumber" RSYNC_PROXY="rsync://username:email@example.com:portnumber"
Keep in mind that the proxy server must support the CONNECT method for the rsync port(s).
Beware of the risks of storing passwords in configuration files. It is bad practice in general, and in some situations can be a huge security problem. Alternative, more secure methods, are advised.
How do I burn an ISO file?
This section covers burning an ISO file to optical media - see the LiveUSB article for information on writing ISO files to USB storage devices as bootable media.
ISO files must be burned to an optical disk in raw mode - this means the image should not just be "placed" on the disk as a file, but interpreted as the entire disk, with the aid of specialized ISO burning software. Most CD/DVD writing software will be capable of mastering an ISO file to a disk. Use whatever is at hand on systems available to burn a disk, and consult the documentation relevant to that software.
There are lots of optical media burning tools available to make a disk from an ISO file, here is a small selection of a few popular tools, on different platforms, with a short description of how to use them:
- With EasyCD Creator, on MS Windows: select File, Record CD from CD image. Then change the Files of type to ISO image file. Then locate the ISO file and click Open. After clicking Start recording the ISO image will be burned correctly onto the CD/DVD.
- With Nero Burning ROM, on MS Windows: cancel the wizard which automatically pops up and select Burn Image from the File menu. Select the image to burn and click Open. Now click the Burn button and watch the brand new Gentoo Live CD being burnt.
- With cdrecord, part of cdrtools (app-cdr/cdrtools) - a multi platform project (works on Linux, among others): simply type cdrecord dev=/dev/cdrom (replace /dev/cdrom with the CDROM drive's device path) followed by the path to the ISO file.
- With K3B, on Unix(like) OSs: select Tools → Burn Image. Then locate the ISO file within the 'Image to Burn' area, and select the target medium within the 'Burn Medium' area. Click Start to begin the burn process.
- With Mac OS X Panther, and later, launch Disk Utility from Applications/Utilities, select Open from the Images menu, select the mounted disk image in the main window and select Burn in the Images menu.
What ISO or stage file should I use for my CPU?
First find out what CPU is in the system Gentoo is to be installed on (for instance a Pentium-M). Next find out what CPU type it is compatible with (instruction-wise) to find a proper match with Gentoo's ISO or stages. Consulting the CPU's vendor website for this information usually works, although querying a search engine of choice is usually more efficient.
When uncertain, take a "lower" ISO or stage file, for instance a i686 or even generic x86 (or the equivalent in the system's arch). This will ensure that the system will work, but may not be as fast as further optimizations.
Please note that many more options exist than those for which Gentoo builds binary stages. Please see the GCC guide for setting the
The Internet does not work after rebooting. What is wrong?
First follow standard troubleshooting practices (cables, routers working etc.).
Verify that the network card is discovered properly by the kernel. Run ifconfig -a and look for network interfaces. Something such as eth0, eno1, enp2s0, enp0s8, wlan0, wlp5s6 (in case of certain wireless network cards) should be present. Specific kernel modules may be required for the kernel to properly detect the network card. If that is the case, make sure that the required kernel modules are listed via a file ending in
.conf in /etc/modules-load.d.
If support for the system's network card has been left out of the kernel, it will need to be reconfigured and, in some cases, recompiled.
If the network card is found by the kernel, but the network configuration has been set to use DHCP, a DHCP client might not have been installed on the system. There are many DHCP clients available in Gentoo, a common one being dhcpcd. If necessary to get the connection to the Internet working, reboot to the installation CD and install net-misc/dhcpcd.
Information on how to rescue the system using the installation CD is available here as well.
Can I dual boot with Windows or other operating systems?
Attempting to boot Windows from GRUB Legacy or LILO only shows a black screen. What should I do?
This is a known problem and only applies to older bootloaders such as GRUB Legacy and LILO. Windows refuses to boot when it is not installed on the first hard drive and shows a black/blank screen. To handle this, it is necessary to "fool" Windows into believing that it is installed on the first hard drive with a little tweak in the boot loader configuration. Please note that in the below example, Gentoo is installed on /dev/sda (first disk) and Windows on /dev/sdb (second disk). Adjust the configuration as needed:
title Windows XP map (hd1) (hd0) map (hd0) (hd1) rootnoverify (hd1,0) chainloader +1
The above example is for GRUB Legacy bootloader, not GRUB2. For information on how to dual boot Windows with GRUB see the GRUB article.
other=/dev/sdb1 label=WindowsXP table=/dev/sdb map-drive = 0x80 to = 0x81 map-drive = 0x81 to = 0x80
This will make Windows believe it is installed on the first hard drive and boot without problems. More information can be found in official GRUB documentation and in man lilo.conf.
How do I install Gentoo using a stage1 or stage2 tarball?
The Gentoo Handbook only describes a Gentoo installation using a stage3 tarball. Stage1 and stage2 tarballs are for development purposes only (the Release Engineering team starts from a stage1 tarball to obtain a stage3) and should not be used by users. A stage3 tarball can very well be used to bootstrap the system. A working Internet connection is a requirement.
Bootstrapping means building the toolchain (the C library and compiler) for the system after which all core system packages are installed. To bootstrap the system, perform a stage3 installation. Before starting the chapter on Configuring the Kernel, it might be necessary to modify the bootstrap.sh script to match personal requirements:
After modifications, run the script.
Next, rebuild all core system packages with the newly built toolchain. We need to rebuild them since the stage3 tarball already offers them:
emerge -e @system
Now continue with Configuring the Kernel.
In what form are the packages stored?
Packages are not "stored" per se. Instead, Gentoo provides a set of scripts which can resolve dependencies, fetch source code, and compile a version of the package tailored to the user's needs. Generally Gentoo only builds binaries for releases and snapshots. The Gentoo Developer Manual covers the contents of an ebuild script in detail.
For full ISO releases, a full suite of binary packages will be created using an enhanced .tbz2 format, which is .tar.bz2 compatible with meta-information attached to the end of the file. These can be used to install a working (though not fully optimized) version of the package quickly and efficiently.
It is possible to create RPMs (Red Hat package manager files) using Gentoo's Portage, but it is not currently possible to use existing RPMs to install packages.
I want to perform the ./configure step myself. Can I?
Yes, but it is not trivial, nor is it recommended. Since the method to do this requires a good understanding of Portage internals and commands, it is instead recommended that the ebuild is patched to do whatever it is that the user wants and place it in a Portage overlay (that is why overlays exist). This is much better for maintainability, and usually easier. See the Gentoo Developer Manual for more information.
What if rsync does not work for me?
When behind a firewall that does not permit rsync traffic through port 873, the emerge-webrsync command can be used to fetch and install a Portage snapshot through regular HTTP. See this section for information on downloading source files and Portage snapshots via a proxy.
I have a slow (or no) Internet connection at home. Can I download sources somewhere else and add them to my system?
It is possible to download packages manually and copy them to an appropriate location to be used for installation, however this can be a very tedious process.
Run emerge --pretend package/atom to see what programs are going to be installed. To find out the sources for those packages, and where to download the sources from, run emerge -fp package/atom. Download sources and bring them on any media home. Put the sources into the /var/cache/distfiles/ folder and then simply run emerge package/atom.
Source tarballs are collecting in /var/cache/distfiles/. Is it safe to delete these files?
Deleting these files will have no negative impact on day-to-day performance. However, it might be wise to keep the most recent version of the files; often several ebuilds will be released for the same version of a specific piece of software. If the archive is deleted and the software is upgraded or rebuilt it will be necessary to download them from the Internet again.
Use the eclean script from app-portage/gentoolkit to manage the contents of /var/cache/distfiles/ and a few other locations. Please read eclean man-page to learn more about its usage, as well as the Gentoolkit article.
What is in /var/tmp/portage? Is it safe to delete the files and directories in /var/tmp/portage?
During compilation, Gentoo saves the sources of the package in /var/tmp/portage (or in $PORTAGE_TMPDIR/portage if the default is changed). These files and folder are usually deleted upon a successful emerge, but this sometimes fails. It is safe to clean out all contents of this directory if the emerge command is not running. Be sure to always pgrep emerge before cleaning out this directory.
How do I set up an International keyboard layout?
Edit the keymap variable in /etc/conf.d/keymaps. To have console working correctly with extended characters in the keymap, it might be necessary to set the consolefont and consoletransation variables in the /etc/conf.d/consolefont file (for further information on localizing the environment, refer to the localization guide). Then, issue a reboot, or restart the keymaps and consolefont scripts:
See keyboard layout switching for more information.
DNS name resolution works for root only
/etc/resolv.conf has the wrong permissions; fix it as follows:
chmod 0644 /etc/resolv.conf
See also resolv.conf.
Why can't my user use their own crontab?
Add that user to the cron group:
gpasswd -a <username> cron
How do I get numlock to start on boot?
The following command will add the numlock service to the default runlevel, enabling numlock at boot:
rc-update add numlock default
Each GUI provides different tools for this sort of thing; please check the help section or online manuals for the GUI of choice for further assistance.
How do I have my terminal cleared when I log out?
To have the terminal cleared, add the clear command to the user's ~/.bash_logout script:
echo clear >> ~/.bash_logout
To have this happen automatically when adding a new user, do the same for the /etc/skel/.bash_logout file:
echo clear >> /etc/skel/.bash_logout
Where can I report bugs?
How often are new releases made?
Gentoo's packages are usually updated shortly after the upstream authors release new code, see this section for more information.
This section concerns releases of packages. Gentoo itself is on a rolling release model and does not have releases, see the What makes Gentoo different? section.
My speaker beeps like crazy. How do I disable console beeps?
Console beeps can be turned off using setterm, like this:
setterm -blength 0
To turn off the console beeps on boot, put the following command in the /etc/conf.d/local.start file. However, this only disables beeps for the current terminal. To disable beeps for other terminals, pipe the command output to the target terminal, like this:
setterm -blength 0 > /dev/vc/1
Replace /dev/vc/1 with the terminal for which console beeps need to be disabled.
See this article for more details.
Why is the letter 'e' in the name of many Gentoo-specific tools and functions?
The 'e' became a thing because Gentoo originally started as Enoch Linux. Many of Gentoo's tools and function names maintained the prefix 'e' for this reason.
Here's a quote from Daniel Robbins (Daniel Robbins) : "I think the 'e' likely came from enoch, and was picked as a single-character prefix in the vein of the 'iMac', which was initially released in August 1998. Enoch began in early 1999. (see https://www.funtoo.org/Funtoo_Linux_History)."
Can I buy a CD or DVD release of Gentoo Linux?
Most stores have stopped offering CDs and DVDs. With the short window between Gentoo ISO releases and technological advancements (especially higher internet bandwidth for the masses) these forms of installation media are now artifacts of history. Bootable media are readily available on the mirrors and accessible via the downloads page.
Licensed stores for official merchandise of other types are listed on the stores page.
This FAQ has not answered my question. What do I do now?
The Gentoo bug tracking system contains information on many issues. Searching the web may yield good results for some questions. If having trouble with a particular package, check upstream documentation.
This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Daniel Robbins (Daniel Robbins) , Colin Morey, John P. Davis, Eric Stockbridge, Stoyan Zhekov, Carl Anderson, Jorge Paulo, Benny Chuang, Jonathan Smith,
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.