Wie kann ich ein update von Perl auf Windows ohne die Module?
Bei der Arbeit bin ich mit Perl 5.8.0 unter Windows.
Wenn ich zuerst Perl auf, ich ging zu CPAN heruntergeladen, alle Quellen, ein paar änderungen vorgenommen (in der .MAK Datei? zur Unterstützung von threads, oder Dinge wie, dass), und hat nmake /nmake test /nmake install. Dann, Stück für Stück, ich habe heruntergeladen die einzelnen Module von CPAN und das nmake-Tanz.
So, ich hätte gerne das upgrade auf eine neuere version, aber die neue muss nicht brechen Sie alle vorhandenen Skripts. Insbesondere eine Reihe von "verwenden" - Module, die ich installiert habe, muss installiert sein, in der neuen version.
Was ist die zuverlässigste (und einfachste) Weg, um zu aktualisieren meine aktuelle version, das sicherstellen, dass alles, was ich getan habe, mit der nmake Tanz mit wird noch da sein nach dem Update?
Ich schlage vor, "so aktualisieren Sie Perl auf Windows ohne die Module." Ich begann, meine Antwort, dann gemerkt, dass es nicht passt, weil, meine Antwort ist UNIX-only, und Sie müssen Sie neu installieren alle Ihre Module (die ich denke, wird eine Anforderung jedenfalls).
Danke für die Titel-Vorschläge. Ich habe bearbeitet entsprechend Ihrer Vorschläge.
InformationsquelleAutor piCookie | 2008-09-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Als andere vermerkt, beginnen Sie mit der Installation der neuen perl in einem separaten Ort. Ich habe mehrere Perl installiert, die jeweils komplett getrennt von allen anderen.
Zu tun, müssen Sie zum konfigurieren und kompilieren Sie die Quellen selbst. Beim ausführen
configure
werden Sie die chance bekommen, geben Sie die installer. Ich gab detaillierte Anweisungen für die dies in einer "Zusammenstellung Meiner Eigenen Perl" in der Frühling 2008 Ausgabe von The Perl Review. Es gibt auch ein Element in Effektiv Perl Programmieren, die Ihnen zeigt, wie es zu tun.Nun, gehen Sie zurück zu Ihrem ursprünglichen Verteilung und führen
cpan -a
zum erstellen einer autobundle-Datei. Dies ist ein Pod-Dokument, das listet die alle, die extra-Sachen, die Sie installiert haben, und CPAN.pm versteht, wie zu verwenden, installieren Sie alles.Dinge zu installieren, die in der neuen perl, verwenden Sie das perl-Pfad zu starten CPAN.pm und installieren Sie die autobundle Datei, die Sie erstellt haben. CPAN.Uhr erhalten Sie die richtige Installations-Pfade aus, dass die perl-Konfiguration.
Beobachten Sie die Ausgabe, um sicherzustellen, dass die Dinge gut gehen. Dieser Prozess wird nicht installieren die gleichen Versionen der Module, aber die neuesten Versionen.
Als für Strawberry Perl, es ist ein "portable" - version, die Sie installieren können, irgendwo neben den Standard-Speicherort. So könnte man die neue perl auf Wechselmedien. Sie können testen Sie es überall Sie wollen, ohne die lokale installation. Ich glaube nicht, das ist ganz bereit für den Allgemeinen Gebrauch, obwohl. Die Berrybrew tool kann Ihnen helfen, verwalten.
Glück 🙂
InformationsquelleAutor brian d foy
Ich würde ernsthaft erwägen, auf der Suche mit Strawberry Perl.
InformationsquelleAutor Andy Lester
Können Sie installieren eine zweite Perl-version an einem anderen Ort. Müssen Sie neu installieren, alle nicht-core-Module in der neuen version. Im Allgemeinen, verschiedene Versionen von Perl sind nicht Binär-kompatibel, was könnte ein Problem sein, wenn Sie irgendwelche Programm-spezifische Bibliotheken zu verwenden, die XS-Komponenten. Pure-Perl-Module sollten davon nicht betroffen.
InformationsquelleAutor Michael Carman
Wenn Sie sich innerhalb der 5.8 track, alle installierten Module enthalten, XS (Binär) Erweiterungen weiter zu arbeiten, als Binär-Kompatibilität ist garantiert innerhalb der gleichen Serie 5.8. Wenn Sie verschoben, um 5.10 dann müssten Sie kompilieren Sie alle Module, die enthalten-XS-Komponenten.
Alles, was Sie tun müssen, ist sicherzustellen, dass die neue build-Listen der vorherigen include-Verzeichnisse in Ihrer @INC-array (die benutzt wird, um für die Module).
Von den Klängen der es, ich denke, du bist auf Windows, in dem Fall wird das @INC-Pfade angezeigt werden können mit
Stellen Sie sicher, dass Sie die Zielgruppe Ihres neuen Perl-version in einem anderen Verzeichnis. Es wird fröhlich koexistieren
mit der vorherigen version, und dies ermöglicht es Ihnen zu wählen, welche Perl-installation verwendet wird; es ist nur eine Frage der immer Ihren WEG, um zu Sortieren. Sobald ein perl-interpreter gestartet wird, bis es weiß, wo zu suchen, für den rest der Module.
Strawberry Perl ist wahrscheinlich die schönsten Verteilung auf Windows in diesen Tagen für Ihre eigenen Rollen.
InformationsquelleAutor dland
Ich denke, die Antwort auf dieses beinhaltet Virtualisierung irgendeiner Art:
Der Gedanke dahinter ist, dass es wahrscheinlich alle Arten von subtilen Abhängigkeiten und Annahmen, die Sie nicht gedacht haben. Während unwahrscheinlich, die neueste version des entsprechenden Moduls (ggf. auch ein core-Modul, obwohl das noch unwahrscheinlicher ist), haben möglicherweise einen kleinen Unterschied im Vergleich zu der, die Sie verwenden. Es sei denn du hast erschöpfend Weg durch die gesamte Codebasis, es ist durchaus möglich ein bestimmtes Modul, die erforderlich ist, nur unter bestimmten Umständen.
Können Sie versuchen Sie und entdecken Sie dieses durch den Aufbau einer Liste der alle Ihre Skripts - eine Liste, die sollte man trotzdem haben, vermöge der Sie alle Ihre code unter Versionskontrolle (Sie sind Verwendung von version control, z.B. Subversion, ja?) - und das Durchlaufen, laufen
perl -c
auf jedem script. z.B. dieses Skript. Diese Art von automatisierten test von unschätzbarem Wert ist: Sie können es laufen, gehen Weg für ein Kaffee oder was auch immer, und kommen zurück, um zu überprüfen, ob alles funktionierte. Die ersten paar Male, Sie finden wahrscheinlich eine obskure Modul, das Sie vergessen hatte, über das, was gut ist: der ganze Sinn der Automatisierung ist dies so, dass Sie nicht zu tun haben, der drudge-Arbeit zu überprüfen, jedes einzelne Skript.InformationsquelleAutor Sam Kington
Als ich es getan habe ich installiert, die neuere Version in ein separates Verzeichnis. Es gibt ein bit der zusätzlichen Verwirrung in zwei Versionen, aber auf jeden Fall hilft sicherzustellen, dass alles funktioniert zuerst, und bietet eine schnelle Möglichkeit der Umstellung wieder auf den alten in eine Prise. Ich habe auch so einrichten, dass Apache laufen zwei separate Dienste, so konnte ich den Affen mit den neueren Perl-in-one-service, ohne Sie zu berühren die Produktion auf dem alten Perl.
Es ist vermutlich viel schlauer, im Nachhinein, die Installation auf einem separaten computer, und tun Sie Ihre Prüfung gibt. Aufzeichnung jeder änderung der Konfiguration müssen Sie stellen.
Nicht sicher zu bauen es selbst—ich habe immer nur verwendet vorgefertigte binaries für Windows.
Ich bin mir nicht sicher, ob ich verstehe genau, was du fragst. Sie haben eine Liste von änderungen, die Sie gemacht, um die 5.8 makefile? Oder die Frage, wie eine solche Liste? Sind auch Sie gefragt, wie Sie herausfinden, welche Pakete über die Basis-installieren Sie die von CPAN? Sind Sie auch Fragen, wie um zu testen, ob Ihre benutzerdefinierte änderungen werden nicht brechen Sie, diese Pakete, wenn man Sie aus dem CPAN wieder?
Die änderungen am 5.8 makefile sind unwichtig. Ich bin mehr Fragen, wie, um herauszufinden, welche Pakete über die Basis-Installation habe ich erhalten. Ich habe eine Menge von Skripten, die sagen, "use xxx", wobei xxx wurde heruntergeladen und gebaut. Sie alle müssen weiter arbeiten.
Dies kann ein bisschen lahm, aber man könnte TextPad "Suchen in Dateien" oder gleichwertig durchsuchen Sie alle Ihre Skripts für "^nutzen ".
InformationsquelleAutor Kev
Warum nutzen Sie nicht ActivePerl und seine "ppm" - tool (re)Module installiert?
Sie erhalten eine Liste der installierten Module mit "ppm-Liste "Ort". "ppm-Bereich-Liste", um eine Liste von Bereichen. "ppm-Bereich sync-Website, die Aktualisierung des ppm-Datenbank mit Paketen, die installiert wurden, nicht über ppm.
InformationsquelleAutor Alexander Farber