|
Wie man ein neues Paket unter Verwenden dieser Werkzeuge installiert Wie man ein neues Drittanbieter-Produkt installiert, hängt davon ab, ob es als Ei (egg) gepackt ist oder ein traditionelles Zope-2-Produkt ist. Installation eines traditionellen Zope-2-Produktes Der einfachste Weg, um ein herkömmliches Zope-2-Produkt auszuprobieren, besteht darin, es in das Verzeichnis products/ innerhalb des Buidouts zu entpacken. Falls Sie sehen, dass die Dokumentation auf das Verzeichnis Products/ in einer Zope-Instanz verweist, ist dies das gleiche.
Allerdings macht es diese Herangehensweise schwerer, Ihr Produkt weiter zu verteilen, und es mit anderen Entwicklern gemeinsam zu benutzen. Es ist oftmals berechenbarer, das Paket von Buildout für Sie herunterladen und installieren zu lassen. Sie können dies mit dem Abschnitt [productdistros] von buildout.cfg erledigen. Zum Beispiel können Sie folgendermaßen DocFinderTab und CacheFu für Ihr Projekt installieren: [productdistros] recipe = plone.recipe.distros urls = http://www.zope.org/Members/shh/DocFinderTab/1.0.2/DocFinderTab-1.0.2.tar.gz http://plone.org/products/cachefu/releases/1.1/CacheFu-1.1.tgz nested-packages = CacheFu-1.1.tgz version-suffix-packages = Beachten Sie, dass CacheFu als einzelnes Verzeichnis verteilt wird, das eine Anzahl von Produkten in Unterverzeichnis enthält, weshalb wir es unter nested-packages auflisten. Wie immer, wenn Sie buildout.cfg verändern, müssen Sie Buildout neu laufen lassen: $ ./bin/buildout Installieren eines Eies (egg) Solange ein Ei (egg) ein Release in dem Cheese Shop oder woanders hat, kann Buildout es herunterladen und installieren, einschließlich jeder ausdrücklich bestimmter Abhängigkeiten. Listen Sie einfach das Ei (egg) und optional eine Version (andernfalls bekommen Sie die letzte verfügbare) in der Eggs-Option (Ei-Option). [buildout] ... eggs = elementtree borg.project>=1.0b1,<2.0dev Falls Sie wollen, dass Buildout einen anderen Index als den Cheese Shop durchsucht, können Sie eine URL zu find-links hinzufügen, die Download-Links für Eier (eggs) enthält. Eigentlich haben wir bereits ein Beispiel für dies gesehen: elementtree wird gefunden unter http://effbot.org/downloads, nicht in direkt im Cheese Shop. Deshalb haben wir: [buildout] ... find-links = http://dist.plone.org http://download.zope.org/ppix/ http://download.zope.org/distribution/ http://effbot.org/downloads eggs = elementtree Wir habe auch einige der Download-Speicherorte für Zope- und Plone-Eier (eggs) aufgelistet. Nochmals, lassen Sie Buildout erneut laufen, damit die Änderungen sich auswirken: $ ./bin/buildout Entwicklungs-Eier (Development eggs) Falls es kein Release für Ihr Ei (egg) gibt oder falls Sie ein Ei (egg) in Subversion aufspüren wollen, checken Sie es in das Verzeichnis src/ aus. Stellen Sie sicher, dass Sie das ganze Ei (full egg) bekommen, einschließlich der Datei setup.py auf der obersten Ebene. Um zum Beispiel das Trunk-Entwicklungs-Ei von plone.portlets tun Sie: $ cd src $ svn co https://svn.plone.org/svn/plone/plone.portlets/trunk plone.portlets Dann fügen Sie das folgende zu buildout.cfg hinzu: [buildout] ... eggs = ... plone.portlets develop = src/plone.portlets Beachten Sie, dass: - Die Option develop enthält einen relativen Pfad zu dem Platz, wo das Quellcode-Ei (source egg) installiert ist. Buildout erwartet, eine passende setup.py in dem Verzeichnis zu finden.
- Entwicklungs-Eier (development eggs) beanspruchen immer Vorrang gegenüber regulären Eiern (eggs).
- Sie müssen noch den Namen des Eies in der Option eggs auflisten, damit es installiert wird.
- Falls Sie ein Ei (egg) überschreiben, das mit Plone ausgeliefert wird, müssen Sie es eventuell stattdessen in dem Abschnitt eggs des Teils [plone] auflisten:
[buildout] ... develop = src/plone.portlets ... [plone] recipe = plone.recipe.plone eggs = plone.portlets Dies liegt daran, da plone.recipe.plone sehr eindeutig ist in Bezug darauf, welche Versionen seiner verschiedenen Eier (eggs) zu benutzen sind, um sicherzustellen, dass Plone so läuft, wie es released wurde. Buildout-Rezepturen (wie zum Beispiel plone.recipe.plone) werden als Eier (eggs) verteilt. Sie können ein Entwicklungs-Ei (development egg) einer Rezeptur benutzen, indem Sie es unter der Option develop auflisten. There is no need to explicitly list it under the eggs option, since it is referenced by the recipe option of the relevant part. Verwalten von ZCML-Dateien Es ist wichtig zu realisieren, dass Zope die Dateien configure.zcml nicht automatisch für Pakete lädt, die nicht im Namensraum Products.* sind. Stattdessen müssen Sie ausdrücklich das Paket referenzieren. Buildout kann eine solche Referenz (bekannt als ein ZCM-Slug) mit der Option zcml in dem Teil [instance] erstellen. Wie Sie sicherstellen, dass borg.project für Zope verfügbar ist, folgt hier: [buildout] ... eggs = elementtree borg.project ... [instance] ... zcml = borg.project Sollten Sie eine overrides.zcml oder eine meta.zcml benötigen, können Sie Syntax wie die folgende benutzen: zcml = some.package some.package-overrides some.package-meta Richtlinien-Produkte Viele Entwickler ziehen es vor, ein einzelnes "Richtlinien-Produkt" (policy product) (auch bekannt als ein "deployment product") zu erstellen, das verschiedene Abhängigkeiten orchestriert. Falls Sie solch ein Produkt haben, wollen Sie eventuell verschiedene Abhängigkeiten direkt aus der Datei configure.zcml des Richtlinien-Produktes einfügen mit Zeilen wie diesen: <configure xmlns="http://namespace.zope.org/zope"> <include package="borg.project" /> </configure> In diesem Fall brauchen Sie eventuell noch einen Slug (unter Verwenden der Zcml-Option wie oben) für das Richtlinien-Produkt.
|