Benefits of Gentoo

From Gentoo Wiki
Jump to:navigation Jump to:search

This page attempts to summarize the benefits of Gentoo as viewed by its users, with regards to other Linux distributions.

Gentoo is an exceptionally stable, powerful, and flexible distribution that leverages installing from source code to provide functionality that would be hard to achieve with a binary-based system.

To use Gentoo requires some in-depth knowledge of the system, so be prepared to spend time reading and learning before choosing Gentoo.

See also
Please note that there are several pages that provide information about Gentoo Linux. See the page on the website about Gentoo, the philosophy of Gentoo, and the FAQ on what makes Gentoo different. The handbook also has a section about Gentoo.

Community

  • Due to the structure of the Gentoo system, Gentoo's user community tends to be relatively knowledgeable about low-level aspects of Linux (build processes, kernel configuration, hardware support).
  • Gentoo has fostered one of the most helpful communities of any Linux distribution: there are almost a thousand users in the #gentoo (webchat) IRC channel on Libera.Chat at any time.
  • Almost anyone can help with virtually any issue a user may have through the various support channels. In fact anyone with some knowledge of Gentoo is encouraged to help others and contribute.

Efficiency

  • Gentoo has a well deserved reputation for its community's tendency to build optimized code with demonstrable increases in efficiency over binary-based distributions' "one size fits all" model, using things like PGO and -march=native.
  • Gentoo's "USE flag" system allows the user to create an extremely "bare-bones" installation, removing unneeded functions from packages (e.g: removing iPod/iOS support, resulting in smaller binaries that load faster and use less memory). It is straightforward to change these compile flags at a later date, for instance when installing new hardware.
  • Not only from source compilation - some big packages are available in binary form too (for faster installing), like Firefox and Firefox-bin, LibreOffice and LibreOffice-bin.
  • Compiling from source does not necessarily imply greater complexity or difficulty of installation - the process of installing packages is similar to using the package managers of other GNU/Linux distributions, such as apt or pacman. The main noticeable difference is simply one of greater upfront installation time, particularly if not a lot of customization is being done. Just because one has the choice to wade into that complexity doesn't mean that one has to - the defaults are often sufficient.
  • Dependencies are very granular in Gentoo. Where many other distributions would have one large package, Gentoo will partition dependencies into elemental units. Even if cutting things up means more packages, only the ones for parts that are absolutely necessary will be installed, so this approach takes up less space overall. Dependencies will even be adjusted according to selected USE flags, so everything is always kept tight.
  • Save time when Gentoo allows some things that would require involved processes on other systems to be done easily, such as changing compile time options, or creating packages.

Flexibility

  • Gentoo allows users to configure which software features they wish to install, instead of the "one size fits all" approach of many binary-based distributions. Choose even core components, such as the init system, or system logger.
  • Many compile-time options are easily configurable during installation, rather than imposed by a binary package, mainly thanks to the USE flag system.
  • Gentoo can run in a wide range of environments, from embedded systems and virtual containers (LXC, OpenVZ, etc.) through to large cluster machines.
  • Gentoo favors incremental updates (instead of major upgrades every 6 months), so the latest packages are available as soon as they are ready.
  • Rather than impose a specific package, virtual packages allow key-functionality packages to be switched in or out.
  • Gentoo is available for a large selection of architectures, and is particularly easy to port to new systems.
  • For many packages, several versions will be available in the repository, in case a different version is needed.
  • Where it makes sense, several versions of the same package can be installed simultaneously, thanks to SLOTs.
  • Different branches can easily be mixed, when specific versions of a package are needed.

Extensibility

Scalability

  • Due in a large part to Gentoo's portage tool's configurability and its source-based approach to software management, Gentoo is relatively well suited to deployment from tiny embedded systems right up to large cluster machines.
  • Gentoo allows users to easily patch almost any source-based package during build by providing a patch file in the appropriate directory within /etc/portage/patches.
  • For medium to large scale deployments, a binhost may be set up to deploy binary packages to each individual machine, for easy management.
  • Package management is built around a formal standard, called the EAPI, so that any software can reliably interact with the package system. This also allows third party package managers to be created.

Security

  • Due to the flexibility inherent in Gentoo's Portage tool and USE flags, Gentoo encourages users to build software with only the features they need. This decreases code size and complexity, and tends to increase security.
  • The Hardened Gentoo project focuses on increasing the security of Gentoo Linux through a variety of means.
  • Gentoo is an exceptionally stable distribution, and each package is tested thoroughly before being made available.

Software development

  • Because Gentoo is source based, many software development prerequisites are installed. This includes a C-compiler, Linux kernel header files, a Python interpreter, and much more.
  • Thanks to slotting, it is often possible to have multiple versions of packages installed at the same time, which makes testing against multiple versions of compilers, or interpreters, easy.
  • Many Gentoo packages can pull the latest "head" version from a version control system such as git, to work on an upstream package, or if the latest version is needed for some reason.

See also

External resources