Buildout-Rezepte


English version

zc.buildout dient dazu, komplexe Anwendungen aufzusetzen. Die aktuelle Implementierung stammt von Jim Fulton von Zope Corp. Das Ziel des Systems ist, alle Bestandteile einer Anwendung, beispielsweise Serverprozesse und andere Softwarepakete sowie Testumgebungen automatisch zu installieren und zu konfigurieren. Buildout ist in Python geschrieben und verwendet Python-Eggs, ein modernes und bequemes Auslieferungsformat für Python-Pakete.

Das Grundpaket von Buildout verwaltet die Bestandteile der aufzusetzenden Anwendung und ihre Abhängigkeiten und stellt einiges an Infrastruktur bereit, während verschiedene Rezepte die eigentliche Arbeit der Installation erledigen. Buildout bringt ein Rezept mit, das Python-Eggs installiert. Weitere Rezepte findet man im Python package index; er besitzt eine eigene Kategorie für Buildout-Rezepte.

Ich habe bisher vier Rezepte beigetragen, die für Buildout-Umgebungen zum Testen und Betreiben meiner anderen Python-Projekte entstanden. Zwei davon wurden inzwischen zusammengelegt, sodaß drei Rezepte verbleiben:

tl.buildout_virtual_python

Eine virtuelle Python-Installation besteht, grob gesagt, aus symbolischen Links innerhalb eines Buildouts zu einer bestehenden Python-Installation. Sie wird nur für diesen einen Buildout verwendet und ist für ihn schreibbar. Durch ein virtuelles Python vermeidet man es, Python aus dem Quellcode zu bauen, und man kann Pakete verwenden, die in der Stamminstallation vorhanden sind und vom Buildout selbst schwierig zu installieren wären. Das Rezept verwendet intern das Python-Paket virtualenv.

tl.buildout_gtk

GTK+ ist eine GUI-Bibliothek, für die es mit PyGTK eine Python-Schnittstelle gibt. Dieses Rezept installiert die Python-Schnittstellen für GTK+ und zwei weitere Bibliotheken, die von GTK+ benutzt werden: gobject und cairo. Optional kann es auch Python-Bindungen für WebKitGTK+ installieren.

tl.buildout_apache

Hierbei handelt sich um drei einzelne Rezepte, die zusammen die Umgebung für einen Apache-HTTP-Server aufsetzen: eines baut die Software selbst aus dem Quellcode, das zweite erzeugt ein Wurzelverzeichnis für den Server, das die Konfiguration des Serverprozesses und der veröffentlichten Ressourcen enthält, und das dritte stellt das Python-Modul für den Apache-Server, mod_python, bereit.


07.02.2016