Ebuild
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
all articles
An ebuild file is a text file, usually stored in a repository, which identifies a specific software package and tells the Gentoo package manager how to handle it. Ebuilds adhere to a specific EAPI version, and are standardized through the Package Manager Specification:
The ebuild file format is in its basic form a subset of the format of a bash script. The interpreter is assumed to be GNU bash
Ebuilds contain metadata about each version of a piece of available software (name, version number, license, home page address...), dependency information (both build-time and run-time), and instructions on how to build and install the software (configure, compile, build, install, test...).
The default location for ebuilds in Gentoo is the Gentoo ebuild repository (/var/db/repos/gentoo/).
See the ebuild repository article about what an ebuild repository is, the creating an ebuild repository article on how to create them, and the basic guide to write Gentoo Ebuilds for creating ebuilds to house in a repository.
"ebuild" command
ebuild is also the Portage command for running the various ebuild functions.
Ebuilds can be installed with the ebuild command, however this is not recommended - this command is for development purposes only. Ebuilds should be placed in an ebuild repository then installed with the emerge command.
Information on the ebuild command can be found locally by running:
user $
man 1 ebuild
Live ebuilds
An ebuild is a live ebuild if the source is fetched from a revision control system (VCS). They tend to, but not necessarily, have the version number 9999 so that they can be easily distinguished from normal ebuilds based on upstream releases.
In a formal sense, an ebuild is live if it has a variable PROPERTIES
with a value "live" inside it. If an ebuild inherits a VCS eclass (e.g. git-r3, mercurial, darcs), it will be live, because these eclasses have a line PROPERTIES+=" live"
.
See also
- Basic guide to write Gentoo Ebuilds — getting started writing ebuilds, to harness the power of Portage, to install and manage even more software.
- Submitting ebuilds — explains how to submit ebuilds for inclusion in the Gentoo ebuild repository
- Package Manager Specification — a standardization effort to ensure that the ebuild file format, the ebuild repository format (of which the Gentoo ebuild repository is the main incarnation), as well as behavior of the package managers interacting with these ebuilds is properly agreed upon and documented.
- Portage — the official package manager and distribution system for Gentoo.
External resources
- Ebuild eclass reference in the developer manual.
- ebuild-maintainer-quiz.txt - Gentoo developer ebuild quiz.
- man 1 ebuild - The ebuild command's man page.
- man 5 ebuild - The ebuild file format man page.