2008-09-16 15 views
19

Die Leute fragen auch oft "Wie kann ich Perl kompilieren?" während sie wirklich wollen, ist eine ausführbare Datei zu erstellen, die auf Computern ausgeführt werden kann, selbst wenn sie Perl nicht installiert haben.Wie kann ich mein Perl-Skript so verpacken, dass es auf einer Maschine ohne Perl läuft?

Es gibt mehrere Lösungen, ich kenne:

  1. perl2exe von IndigoStar Es kommerziell. Ich habe nie versucht. Seine Website sagt, es kann Win32, Linux und Solaris kompilieren.
  2. Perl Dev Kit von ActiveState. Es ist kommerziell. Ich habe es vor einigen Jahren auf Windows verwendet und es hat gut für meine Bedürfnisse funktioniert. Laut seiner Website funktioniert es unter Windows, Mac OS X, Linux, Solaris, AIX und HP-UX.
  3. PAR oder vielmehr PAR::Packer das ist frei und Open Source. Basierend auf den Testberichten funktioniert es unter Windows, Mac OS X, Linux, NetBSD und Solaris, theoretisch sollte es aber auch auf anderen UNIX-Systemen funktionieren. Kürzlich habe ich begonnen, PAR für das Packen unter Linux zu verwenden und es auch unter Windows zu benutzen.

Andere empfohlene Lösungen?

Antwort

12

Zusätzlich zu den drei in der Frage aufgelisteten Tools gibt es noch eine andere namens Cava Packager geschrieben von Mark Dootson, der in der Vergangenheit auch zu PAR beigetragen hat. Es läuft nur unter Windows, hat eine nette Wx-GUI und arbeitet anders als die typischen drei Konkurrenten, indem es alle Perl-Abhängigkeiten in einem source/lib-Verzeichnis zusammenstellt, anstatt ein einzelnes Archiv zu erstellen, das alles enthält. Es gibt eine kostenlose Version, aber es ist keine Open Source. Ich habe das nur zum Testen benutzt.

Wie für PAR, es ist wirklich ein Toolkit. Es wird mit einem Paketierungstool geliefert, das das Dependency-Scanning und die Assemblierung von eigenständigen ausführbaren Dateien ermöglicht, aber auch verwendet werden kann, um sogenannte .par-Dateien in Analogie zu Java-JARs zu generieren und zu verwenden. Es kommt auch mit client und server für automatisches Laden fehlender Pakete über das Netzwerk, etc. Die slides of my PAR talk bei YAPC::EU 2008 gehen darauf näher ein. Es gibt auch eine aktive Mailingliste: par at perl dot org.

+2

Laut der Antwort von cavapack und der Cava-Website läuft es jetzt auch unter Linux und OS X. – Andy

+0

Könnten Sie mir bitte sagen, wie man Cava Packager verwendet – Balakumar

-3

Sie könnten das Werkzeug perlcc verwenden, das mit den meisten Perl-Distributionen ausgeliefert wird. Ich habe auch perl2exe und Active State Perl Dev Kit nützlich für den Versand von Perl-Anwendungen gefunden.

+1

perlcc funktioniert nicht wirklich, und so war es schon lange. PAR ist der Weg zu gehen. – asksol

+2

perlcc funktioniert meistens nicht (siehe perldoc perlcc) und wurde aus Perl 5 entfernt.10 – szabgab

1

Ich bin ein Perl-Neuling und ich habe gerade Cava Packager heruntergeladen und das ist der einzige, den ich gefunden habe. Ich habe ActiveState 5.10.1005 und Strawberry Perl mit PAR-Packager unter Windows XP ausprobiert. pp hängt nur im Midstream und keine ausführbaren Dateien erstellt.

Cava bietet die einzige Lösung zum Erstellen von EXE unter Windows bisher. Thks.

+0

Erdbeere mit pp arbeitete für mich (4 Jahre nach Ihrer Antwort). –

5

Es ist einige Zeit seit dieser Frage wurde zuerst gefragt, aber Cava Packager kann derzeit ausführbare Pakete für Windows, Linux und Mac OS X. Es ist nicht mehr nur Windows.

Hinweis: Wie von meinem Namen angegeben, bin ich mit Cava Packager verbunden.