Was ist eine gute Möglichkeit, eine Perl-Anwendung bereitzustellen?

9

Ich habe diese Frage gestellt und nach etwas gesucht ähnlich wie Buildout für Perl. Ich denke, Shipwright ist was ich suche, aber ich bin es nicht wirklich sicher. Ich habe damit herumgespielt und ein Projekt erstellt, alle meine Quellen und Abhängigkeiten importiert und alles in ein Schiff exportiert, dann wurde die Dokumentation einfach gestoppt. Was mache ich mit einem Werftschiff? Mache ich meine eigentliche Entwicklungsarbeit im Schiff oder mache ich meine Entwicklung in der Werft? Ich gehe davon aus, dass das Schiff nur für den Einsatz gedacht ist, aber wie stelle ich ein Schiff tatsächlich auf einen Webserver (sagen wir, ich benutze Linux, Apache und laufe einfach gerade cgi).

Ist Shipwright das Richtige für das, was ich zu erreichen versuche, oder gibt es etwas anderes, das angemessener wäre? Im Idealfall könnte ich Shipwright ähnlich wie Buildout verwenden. Ich verwende Buildout, um eine nette isolierte Umgebung für meine Entwicklung zu erstellen, und ich verwende Buildout, wenn ich auf Live-Servern binde, um alle Abhängigkeiten meiner Anwendung zu verwalten.

EDIT: Hier sind die Highlights dessen, was ich mit Buildout machen kann, was ich in Perl machen könnte.

Mit Buildout habe ich eine Datei in meiner Codebasis, die Abhängigkeiten auflistet (was für Perl entweder CPAN-Module oder andere Quell-Repositories wären). Ich kann ein Bootstrap-Skript ausführen, das all diese Abhängigkeiten abruft und sie in ein Verzeichnis innerhalb meines Projekts legt und NICHT auf Systemebene installiert . Buildout erstellt auch Hilfsskripts, die alles Mögliche tun können (Tests ausführen, andere Befehlszeilentools, alles wirklich), und diese Skripte fügen dem Pfad explizit die Abhängigkeiten hinzu, so dass alle meine Abhängigkeiten für den Import verfügbar sind.

Was dies wirklich sehr gut macht ist, dass es mir erlaubt, meine Abhängigkeiten zu verwalten, ohne irgendetwas jemals auf Systemebene installieren zu müssen. Das macht den Wechsel von einer Version zur anderen sehr einfach. Außerdem können mehrere Buildout-Projekte auf demselben System mit verschiedenen Versionen desselben Moduls ausgeführt werden. Schließlich ist ein großer Vorteil, dass ich mit der Buildout-Verzeichnisstruktur die Abhängigkeiten zur Quellcodeverwaltung festschreiben und auf einer neuen Maschine bereitstellen kann. Ich muss nur einen Checkout durchführen, und alle meine Abhängigkeiten sind bereits erfüllt, ohne etwas zu installieren eine Systemebene.

    
Matthew J Morrison 14.10.2010, 02:12
quelle

1 Antwort

3

Ich glaube nicht, dass Sie irgendetwas genau wie Buildout in Perl finden werden, aber Sie könnten ein paar Dinge zusammenstellen, die den Trick machen würden.

Sie können ein Standard-Build.PL-Skript für Module :: Build verwenden, um Ihre Abhängigkeiten zu verwalten und Befehle zum Ausführen von Tests usw. haben.

Dann könnten Sie cpanminus verwenden, um diese Abhängigkeiten in ein lokales System (kein System) zu installieren ) Verzeichnis.

Dann können Sie vielleicht Shipwright verwenden, um das Bündeln und Deployment des Projekts mit diesen jetzt-lokalen Abhängigkeiten durchzuführen.

    
mpeters 14.10.2010, 13:49
quelle

Tags und Links