Ebuild
Um ebuild é um script bash cujo conteúdo propicia a instalação automatizada (possivelmente incluindo a compilação) de software na distribuição de GNU/Linux Gentoo. É um dos conceitos fundamentais do sistema Portage.
Cada versão de cada pacote no repositório Portage corresponde a um ebuild específico.
O ebuild é usado pela ferramenta emerge, que também faz parte do Gentoo. A ferramenta emerge usa o ebuild para calcular as dependências de um certo pacote, fazer o download dos arquivos necessários (e aplicar um patch neles, se necessário), configurar o pacote (baseado nas configurações de USE), compilar (caso necessário), instalar dentro de uma sandbox e então instalar o pacote no sistema (fora da sandbox).
Muitos ebuilds são usados para compilar programas a partir do código fonte, mas também existem ebuilds para instalar pacotes binários (pré-compilados), ebuilds para instalar documentação ou dados, e os chamados "metabuilds", que apenas causam a instalação de outros ebuilds (por exemplo, os metabuilds GNOME e KDE).
Exemplo
Este é o ebuild oficial da versão 1.2.2 do software Beep:
# Copyright 1999-2005 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.ebuild,v 1.21 2005/06/28 01:48:54 gustavoz Exp $
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="x86 ppc alpha amd64 ppc64 sparc"
IUSE=""
DEPEND="virtual/libc"
src_compile() {
emake FLAGS="${CFLAGS}" || die "compile problem"
}
src_install() {
dobin beep
# do we really have to set this suid by default? -solar
fperms 4711 /usr/bin/beep
doman beep.1.gz
dodoc CHANGELOG CREDITS README
}