Difference between revisions 141213690 and 141395344 on dewiki

{{Importartikel}}

{{Infobox Software
| name                   = Portage
| logo                   =
| screenshot             = [[image:Portage-oppdatering.png|250px]]
| caption                = Portage in action
| author                 =
(contracted; show full)
* [http://forums.gentoo.org/viewtopic.php?t=125553 Installing portage on other Linux distros]
; Similar software
* [http://freaknet.org/alpt/Emerde/ Emerde, portage-like project for Slackware]
* [https://code.google.com/p/pkgcore/ Pkgcore], bsd re-implementation of portage
* [http://paludis.exherbo.org/ Paludis], another package manager that uses ebuilds
* [https://wiki.archlinux.org/index.php/Arch_Build_System Arch Build System] a ports-like system for [http://www.archlinux.org/ Arch Linux]


Ein '''Ebuild''' ist ein [[Skriptsprache|Skript]], das Informationen über ein Programmpaket enthält und dessen [[Installation (Computer)|Installation]] steuert. Das Ebuild-Format ist eine [[domänenspezifische Sprache]], die [[Bourne-again shell|bash]] als Grundlage hat. Es wird in [[Gentoo Linux]] für die [[Paketverwaltung]] verwendet, z. B. vom Paketmanager [[Gentoo Linux#Portage|Portage]].

== Aufbau ==
Ebuilds definieren zunächst einen festgelegten Satz von [[Variable (Programmierung)|Variablen]]. Diese enthalten zum einen Informationen für den Benutzer, wie etwa eine Kurzbeschreibung des Pakets oder den [[Uniform Resource Identifier|URI]] der [[Homepage]]. Andere Variablen werden vom Paketmanager ausgewertet, beispielsweise die Information, von wo der [[Quelltext]] [[Download|heruntergeladen]] werden kann, die [[Lizenz]] des Pakets oder für welche [[Rechnerarchitektur]]en es unterstützt wird. Auch Abhängigkeiten von anderen Paketen wie [[Programmbibliothek]]en, die für das Programm benötigt werden, können durch Variablen spezifiziert werden.

Danach werden in der Regel mehrere [[Funktion (Programmierung)|Funktionen]] definiert, die Anweisungen zum [[Archiver|Auspacken]], [[Patch (Software)|Patchen]], [[Compiler|Kompilieren]] und [[Installation (Computer)|Installieren]] der Software enthalten. Für die meisten Funktionen gibt es einen vom Paketmanager vorgegebenen [[Voreinstellung|Default]], so dass nicht jedes Ebuild alle Funktionen definieren muss. Wenn ein Programmpaket beispielsweise nach dem Auspacken nur mit der Standard-Befehlssequenz ''./[[configure]], [[make]]'' und ''make install'' kompiliert und installiert werden kann, so käme das zugehörige Ebuild ganz ohne die Definition spezieller Funktionen aus.

== Benennung ==
Die Benennung von ebuilds erfolgt nach einem strengen 4-teiligen Schema:
# Der Allgemeine Paketname, wie z. B. [[KDE|''kde'']] oder ''[[mod_php]]'' sollte nur aus Kleinbuchstaben, Ziffern und einer beliebigen Anzahl von einzelnen Bindestrichen ('-') oder Unterstrichen ('_') bestehen
# Die Version des Paketes sollte übereinstimmen mit der Version des Archives, das zur Installation genutzt wird. Heißt das Archiv also programm-2.5.9.tar.gz, so sollte die angegebene Version im ebuild auch 2.5.9 lauten.
# Der letzte Teil ist optional und beinhaltet [[Suffix]]e wie [[Alpha-Version|alpha]], [[Beta-Version|beta]], pre oder [[Release Candidate|rc]] und bestimmt somit die angegebene Version im 2. Teil näher.
# Die Revisionsnummer ist optional und wird nur verwendet, wenn das ebuild verbessert wurde (z. B. wenn zusätzliche [[Patch (Software)|Fehlerbereinigungen]] hinzugefügt werden, aber das Ebuild weiterhin dieselbe Software-Version installiert (sogenannter "revisionbump")).
# Zwar kein Teil des ebuilds, dennoch sehr wichtig ist die Dateiendung '.ebuild'.

Beispiel:
make-3.82-r4.ebuild

== Eclass ==
Um das Schreiben von ebuilds für die Entwickler zu vereinfachen, gibt es sogenannte eclasses. In diesen werden Funktionen für immer wiederkehrende Aufgaben eingetragen, wie z.B. das Erstellen eines [[Concurrent Versions System|CVS]]-Ebuilds oder Funktionen zur Installation eines [[Linux (Kernel)|Linux-Kernels]].

== Literatur ==
* Tobias Scherbaum: ''Gentoo Linux: Die Metadistribution.'' 2. Auflage. Mitp-Verlag, Heidelberg 2008, ISBN 978-3-8266-5941-6.
* Christoph Junghans, Andreas K. Hüttel, Ulrich Müller: ''Maßarbeit – Gentoo Linux: Quelltexte und Rolling Releases.'' In: ''[[c’t|c’t – Magazin für Computertechnik]].'' Jg. 2012, Nr. 16. [[Heise Zeitschriften Verlag]], {{ISSN|0724-8679}}, S. 162–164.

== Weblinks ==
* [http://devmanual.gentoo.org/ Gentoo Development Guide] (englisch), umfasst u. a. eine ausführliche Referenz zum Ebuild-Scripting.
* [http://distfiles.gentoo.org/distfiles/pms-5.pdf Package Manager Specification] (englisch), genaue Spezifikation des Ebuild-Formats.


* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=113284174 2013-01-22 17:06] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=113284174&diff=prev diff]) (minor) [[:de:Benutzer:Ulm|Ulm]] ''(<span class="autocomment">/* Eclass */</span> Singular)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=113076587 2013-01-17 11:46] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=113076587&diff=prev diff]) (minor) [[:de:Benutzer:Ulm|Ulm]] ''(<span class="autocomment">/* Benennung */</span> "Zahlen 0-9" = Ziffern)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=113076033 2013-01-17 11:32] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=113076033&diff=prev diff]) [[:de:Benutzer:Ulm|Ulm]] ''(Überarbeitet)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=113024082 2013-01-16 08:05] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=113024082&diff=prev diff]) [[:de:Benutzer:M-J|M-J]] ''(LA+)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=108994765 2012-10-06 23:02] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=108994765&diff=prev diff]) (minor) [[:de:Benutzer:Trustable|Trustable]] ''(Kleinigkeiten verbessert)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=107846664 2012-09-09 13:09] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=107846664&diff=prev diff]) [[:de:Benutzer:Alexander_Fischer|Alexander Fischer]] ''(<span class="autocomment">/* Weblinks */</span> Link auf Gentoo Development Guide)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=75483884 2010-06-12 11:17] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=75483884&diff=prev diff]) [[:de:Benutzer:Ulm|Ulm]] ''(<span class="autocomment">/* Inhalt */</span> Darf allgemein ein URI sein, siehe http://distfiles.gentoo.org/distfiles/pms-3.pdf)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=75483603 2010-06-12 11:07] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=75483603&diff=prev diff]) (minor) [[:de:Benutzer:Trustable|Trustable]] ''(Begriff korrigiert)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=68200094 2009-12-19 15:36] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=68200094&diff=prev diff]) [[:de:Benutzer:Biktora|Biktora]] 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=68200009 2009-12-19 15:33] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=68200009&diff=prev diff]) [[:de:Benutzer:Biktora|Biktora]] 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=61252396 2009-06-17 14:06] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=61252396&diff=prev diff]) (minor) [[:de:Benutzer:Ulm|Ulm]] ''(hat „[[:de:Ebuilds]]“ nach „[[:de:Ebuild]]“ verschoben und dabei eine Weiterleitung überschrieben: [[:de:WP:NK#Singularregel]])''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=59392902 2009-04-25 10:13] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=59392902&diff=prev diff]) (minor) [[:de:Benutzer:Sarkana|Sarkana]] ''([[:de:Kategorie:Linux]] nach [[:de:Kategorie:Linux-Software]] geändert (mit [[:de:Wikipedia:Helferlein/HotCat|HotCat]]))''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=45441634 2008-04-29 11:39] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=45441634&diff=prev diff]) [[:de:Benutzer:Sebbot|Sebbot]] (bot) ''([[:Kategorie:Installationshilfe]] umbenannt in [[:de:Kategorie:Installationssoftware]]: [[:de:Wikipedia:WikiProjekt Kategorien/Diskussionen/2008/April/18]] - Vorherige Bearbeitung: 16.03.2008 14:27:01)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=43765738 2008-03-16 13:27] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=43765738&diff=prev diff]) [[:de:Benutzer:91.16.79.97|91.16.79.97]] (anon) ''(Formulierungsvereinfachung: "kde ODER mod_php")''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=37529577 2007-10-06 14:23] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=37529577&diff=prev diff]) (minor) [[:de:Benutzer:AlleborgoBot|AlleborgoBot]] (bot) ''(Bot:  Entferne: [[:de:ko:이빌드]])''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=33487460 2007-06-22 13:49] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=33487460&diff=prev diff]) [[:de:Benutzer:194.127.8.17|194.127.8.17]] (anon) ''(<span class="autocomment">/* Benennung */</span>)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=32025730 2007-05-19 10:00] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=32025730&diff=prev diff]) [[:de:Benutzer:D135-1r43|D135-1r43]] ''(Portage muss nicht zwangsläufig Gentoo sein (etwa auch OpenDarwin))''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=31999063 2007-05-18 15:04] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=31999063&diff=prev diff]) [[:de:Benutzer:Polluks|Polluks]] 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=28832434 2007-03-07 23:04] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=28832434&diff=prev diff]) (minor) [[:de:Benutzer:Rei-bot|Rei-bot]] (bot) ''(Bot:  Ergänze: [[:de:es:Ebuild]])''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=28417350 2007-02-27 14:34] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=28417350&diff=prev diff]) [[:de:Benutzer:Strubbl|Strubbl]] ''(<span class="autocomment">/* Benennung */</span>)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=26373745 2007-01-13 18:47] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=26373745&diff=prev diff]) (minor) [[:de:Benutzer:DodekBot|DodekBot]] (bot) ''(Bot:  Ergänze: [[:de:pl:Ebuild (plik)]])''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=24237652 2006-11-24 17:05] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=24237652&diff=prev diff]) (minor) [[:de:Benutzer:Bota47|Bota47]] (bot) ''(Bot:  Ergänze: [[:de:gl:Ebuild]], [[:de:pt:Ebuild]])''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=22384041 2006-10-09 08:49] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=22384041&diff=prev diff]) (minor) [[:de:Benutzer:JAnDbot|JAnDbot]] (bot) ''(Bot:  Ergänze: [[:de:ja:Ebuild]])''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=19947346 2006-08-08 16:52] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=19947346&diff=prev diff]) (minor) [[:de:Benutzer:Chobot|Chobot]] (bot) ''(Bot:  Ergänze: [[:de:ko:이빌드]])''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=18362409 2006-06-27 19:40] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=18362409&diff=prev diff]) [[:de:Benutzer:Arcy|Arcy]] ''(<span class="autocomment">/* Benennung */</span>)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=16117523 2006-04-28 13:12] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=16117523&diff=prev diff]) (minor) [[:de:Benutzer:Dermartn|Dermartn]] ''(Beispiel hinzugefügt)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=13391299 2006-02-05 08:11] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=13391299&diff=prev diff]) (minor) [[:de:Benutzer:Eskimbot|Eskimbot]] ''(Bot:  Ergänze: ru)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=12835125 2006-01-20 19:32] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=12835125&diff=prev diff]) [[:de:Benutzer:84.152.70.39|84.152.70.39]] (anon) ''(<span class="autocomment">/* Benennung */</span>)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=12835109 2006-01-20 19:31] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=12835109&diff=prev diff]) [[:de:Benutzer:84.152.70.39|84.152.70.39]] (anon) 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=12828598 2006-01-20 16:29] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=12828598&diff=prev diff]) [[:de:Benutzer:84.152.70.39|84.152.70.39]] (anon) ''(<span class="autocomment">/* Benennung */</span>  versionbump)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=12698246 2006-01-17 01:08] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=12698246&diff=prev diff]) [[:de:Benutzer:82.48.30.232|82.48.30.232]] (anon) ''(interwiki it)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=8962677 2005-08-31 22:10] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=8962677&diff=prev diff]) [[:de:Benutzer:217.83.101.184|217.83.101.184]] (anon) ''(<span class="autocomment">/* Eclasses */</span>)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=7868494 2005-07-21 19:03] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=7868494&diff=prev diff]) (minor) [[:de:Benutzer:Bota47|Bota47]] (bot) ''(robot  Ergänze: cs, fr)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=6759007 2005-05-24 04:59] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=6759007&diff=prev diff]) (minor) [[:de:Benutzer:FlaBot|FlaBot]] (bot) ''(robot  Ergänze: eu)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=6017809 2005-04-20 00:54] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=6017809&diff=prev diff]) (minor) [[:de:Benutzer:Sarge_Baldy|Sarge Baldy]] ''(+en)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=5414357 2005-02-03 17:27] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=5414357&diff=prev diff]) [[:de:Benutzer:Boris23|Boris23]] ''(weblink & kat; Eclasses)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=4343498 2004-11-20 12:22] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=4343498&diff=prev diff]) [[:de:Benutzer:80.142.201.1|80.142.201.1]] (anon) 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=3348085 2004-11-16 13:05] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=3348085&diff=prev diff]) [[:de:Benutzer:80.142.192.168|80.142.192.168]] (anon) 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=3297420 2004-11-16 08:34] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=3297420&diff=prev diff]) [[:de:Benutzer:80.142.212.12|80.142.212.12]] (anon) ''(Groß- und kleinschreibung, ekligen Anglizismus entfernt, Formulierung, etc, etc, etc.)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=3294007 2004-10-14 12:02] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=3294007&diff=prev diff]) [[:de:Benutzer:217.185.85.46|217.185.85.46]] (anon) ''(<span class="autocomment">/* Benennung */</span>)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2880703 2004-10-04 22:58] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2880703&diff=prev diff]) (minor) [[:de:Benutzer:BWBot|BWBot]] ''(Bananeweizen - Bot: Typo)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2769758 2004-10-02 15:17] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2769758&diff=prev diff]) [[:de:Benutzer:80.143.60.181|80.143.60.181]] (anon) ''(<span class="autocomment">/* Bennenung */</span>)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2745800 2004-09-30 16:37] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2745800&diff=prev diff]) (minor) [[:de:Benutzer:Floschuh|Floschuh]] ''(TippfehlerKorrektur)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2726877 2004-09-25 10:58] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2726877&diff=prev diff]) (minor) [[:de:Benutzer:BWBot|BWBot]] ''(Bananeweizen - Bot: Typo, einfacher Wikilink)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2671364 2004-09-24 14:07] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2671364&diff=prev diff]) [[:de:Benutzer:217.225.255.95|217.225.255.95]] (anon) ''(Rechtschreibfehler entfernt)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2662238 2004-09-22 19:09] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2662238&diff=prev diff]) [[:de:Benutzer:Woodworker|Woodworker]] ''(Erstmal etwas Content)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2641766 2004-09-22 18:22] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2641766&diff=prev diff]) (minor) [[:de:Benutzer:Woodworker|Woodworker]] ''(Installierne link geändert)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2641240 2004-08-08 11:22] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2641240&diff=prev diff]) [[:de:Benutzer:Arved|Arved]] 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2085093 2004-06-17 16:08] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=2085093&diff=prev diff]) [[:de:Benutzer:Arved|Arved]] ''(+stub. Ohje noch so ein Artikel auf den die Welt gewartet hat....)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=1562787 2004-05-24 21:34] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=1562787&diff=prev diff]) (minor) [[:de:Benutzer:Kahlfin|Kahlfin]] ''(typo)''
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=1360172 2003-11-16 20:12] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=1360172&diff=prev diff]) (minor) [[:de:Benutzer:Fristu|Fristu]] 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=384390 2003-07-26 19:28] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=384390&diff=prev diff]) [[:de:Benutzer:Diddi|Diddi]] 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=218220 2002-12-23 08:38] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=218220&diff=prev diff]) (minor) [[:de:Benutzer:Zeno_Gantner|Zeno Gantner]] 
* [http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=53975 2002-12-22 23:31] ([http://de.wikipedia.org/w/index.php?title=Ebuild&oldid=53975&diff=prev diff]) [[:de:Benutzer:217.84.186.138|217.84.186.138]] (anon)