2010-08-15 3 views
6

Ich möchte verschiedene Perl-Versionen in meinem Home-Verzeichnis installieren. Ich versuchte, App::perlbrew zu verwenden, aber XS-Module von einer Version verursachten segfolds in der anderen Version. Gibt es eine Möglichkeit, mehrere Versionen von Perl zu installieren und sie automatisch ihre XS-Module getrennt zu halten?Wie können mehrere Perl-Versionen installiert werden, ohne dass sie über die XS-Module der anderen stolpern?

+0

Eigentlich erinnerte ich mich gerade, dass ich auch local :: lib verwende. Vielleicht interagieren sie nicht gut miteinander. Ich werde versuchen, es zu deaktivieren. –

+0

Hmm, es sieht aus wie local :: lib und perlbrew spielen nicht gut zusammen. Das scheint mein Problem zu sein. –

+0

mögliche Duplikate von [Wie verwalten Sie Perl Module bei Verwendung eines Paketmanagers?] (Http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-a-package -manager) – Ether

Antwort

11

Sie können jede Perl vollständig getrennt von jeder anderen Perl-Installation installieren. Es sind Binärdateien und Module, die vollständig voneinander getrennt sind. Im Wesentlichen, wenn Sie jede Installation von perl Sie ihm seinen eigenen Präfix geben:

$ ./Configure -des -Dprefix=/usr/local/perls/perl-5.12.1 

Alles unter diesem Präfix installiert ist, und alle Programme in dem ist/ wird, dass bestimmtes Perl verwenden. Ich gehe genauer darauf ein in Effektive Perl Programmierung.

Von dort aus, ich mache Symlinks in meinem ~/bin zu jedem dieser Programme und die Versionsnummer befestigen, so habe ich ~/perl5.12.1, perldoc5.12.1, und so weiter . Ich muss mich nie für eine Version entscheiden, wie Perlbrew es von dir will. Ich schreibe mehr darüber in Make links to per-version tools. in der Effektive Perler Blog.

Möglicherweise können Sie local :: lib dafür verwenden, aber es ist wirklich für Sie entworfen, um mit einer Perl-Version zu arbeiten und ein persönliches Bibliotheksverzeichnis zu verwenden. Sie können ihm sagen, dass er ein anderes Verzeichnis verwenden soll, aber an diesem Punkt spart es Ihnen wirklich nichts auf die traditionelle Art und Weise.

+0

Danke für die Klärung, dass local :: lib nur für eine einzige Version ist. Ich habe local :: lib deaktiviert und Perlbrew scheint es gut zu machen. –

+0

Ich denke -Dprefix könnte nicht genug sein; Ich endete mit einer Perl-Installation, die alle ihre Bibliotheken an den richtigen Platz stellte, aber immer noch/usr/local/bin für ausführbare Dateien verwendete. Ich bin noch nicht zurückgegangen, um zu sehen, was passiert ist, also erwähne ich das nur als Fußnote, die Leute warnt, vorsichtig zu sein, welche Konfigurationen über -es erzeugt werden. – Ether

+0

Also gibt es eine Möglichkeit für local :: lib, mit mehreren Perl-Versionen und XS-Modulen richtig zu arbeiten, oder sollte ich es deaktivieren und Perlbrews alles handhaben lassen? –

Verwandte Themen