ebuild
From Wikipedia, the free encyclopedia
An ebuild is a specialized bash script format created by the Gentoo Linux project for use in its Portage software management system, which automates compilation and installation procedures for software packages.
Each version of an application or package in the Portage repository has a specific ebuild script written for it. The script is used by the emerge tool, also created by the Gentoo Linux project, to calculate any dependencies of the desired software installation, download the required files (and patch them, if necessary), configure the package (based on "USE flag" settings), compile, and perform a sandboxed installation (in /var/tmp/portage/[ebuild name]/image/ by default). Upon successful completion of these steps, the installed files are merged into the live system, outside the sandbox.
Although most ebuilds found in the Gentoo Portage repository are used to compile programs from source code, there are also ebuilds to install binary packages, ebuilds that install only documentation or data such as fonts, and basic ebuilds called "metabuilds" which solely trigger the installation of other ebuilds (such as the GNOME or KDE metabuilds).
[edit] Example
Here is an example ebuild for version 1.2.2 of the Beep software:
# Copyright 1999-2006 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/app-misc/beep/beep-1.2.2-r1.ebuild,v 1.3 2006/08/19 11:00:37 kloeri Exp $ inherit eutils base DESCRIPTION="the advanced PC speaker beeper" HOMEPAGE="http://www.johnath.com/beep/" SRC_URI="http://www.johnath.com/beep/${P}.tar.gz" LICENSE="GPL-2" SLOT="0" KEYWORDS="alpha amd64 ~ppc ~ppc64 ~sparc ~x86" IUSE="" PATCHES="${FILESDIR}/${P}-nosuid.patch" src_compile() { emake FLAGS="${CFLAGS}" || die "compile problem" } src_install() { dobin beep fperms 0711 /usr/bin/beep doman beep.1.gz dodoc CHANGELOG CREDITS README }