Ebuild

Från Unix.se, den fria unixresursen.

En ebuild är en textfil med skalskript-liknande syntax som används i pakethanteringssystemet portage. En ebuild tillhandahåller information om hur ett paket ska installeras, var källkoden kan hämtas ifrån, osv.

Innehåll

Översikt

En ebuild kan ses som ett recept på ett program. Med hjälp av en ebuild kan portage installera ett valt program. Det finns en ebuild för varje version av varje program, och vanligtvis hittas de under /usr/portage.

Beroenden i program

Det är vanligt att ett program beror på andra program eller bibliotek, antingen för att överhuvudtaget kunna kompileras eller för att kunna köras. I en ebuild är det lätt att specificera båda dessa typer av beroenden för ett program, med hjälp av variablerna DEPEND och RDEPEND; se nedan.

Egna ebuilds i Gentoo

I Gentoo finns som sagt de flesta ebuilds under /usr/portage/, men det är möjligt att ha ett eget träd med ebuilds som inte skrivs över vid synkronisering med det officiella portage-trädet. Katalogen för det alternativa trädet (t.ex. /usr/local/portage/) specificeras i /etc/make.conf enligt följande:

PORTDIR_OVERLAY=/usr/local/portage

Exempel på ebuild

Det här är en ebuild för programmet imfavorites (http://imfavorites.sourceforge.net). Den skulle kunna placeras i filsystemet som /usr/local/portage/media-sound/imfavorites-1.1.ebuild.

# Copyrightangivelse, år
# Licensangivelse
# $Header: $

# Beskrivning och hemsida för programmet, URL till filen med källkod
DESCRIPTION="CD/DVD/MP3 collection compiler which uses IMMS data"
SRC_URI="mirror://sourceforge/${PN}/${P}.tar.gz"
HOMEPAGE="http://imfavorites.sourceforge.net/"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~x86"

# USE-flaggor som används av ebuilden, styr valmöjligheter vid kompilering
IUSE="gtk2"

# Beroenden för att kunna köra programmet (andra ebuilds)
RDEPEND="virtual/glibc
       >=dev-db/sqlite-2.8
       gtk2? ( >=dev-cpp/gtkmm-2.2.11 )
       >=media-libs/taglib-1.0"

# Ytterligare beroenden för att kunna kompilera programmet
DEPEND="$RDEPEND
       >=media-plugins/xmms-imms-1.0.1"

# Kommandon som ska köras vid kompilering
src_compile() {
       local myconf=" --with-taglib"

       if use gtk2; then
               myconf="${myconf} --with-gtkmm"
       else
               myconf="${myconf} --without-gtkmm"
       fi

       econf \
               ${myconf} \
               || die
       emake || die
}

# Kommandon som ska köras vid installation
src_install() {
  einstall || die
  dodoc README ChangeLog
}

Externa länkar

  • Gentoo Ebuild HOWTO (http://www.gentoo.org/proj/en/devrel/handbook/handbook.xml?part=2&chap=1)
Personliga verktyg