2010-08-15 26 views
6

Je voudrais installer plusieurs versions différentes de perl dans mon répertoire personnel. J'ai essayé d'utiliser App::perlbrew, mais les modules XS d'une version provoquaient des erreurs de segmentation dans l'autre version. Existe-t-il un moyen d'installer plusieurs versions de Perl et de les laisser automatiquement séparer leurs modules XS?Comment installer plusieurs versions de Perl sans qu'elles trébuchent sur les modules XS de l'autre?

+0

En fait, je viens de me rappeler que j'utilise aussi local :: lib. Peut-être qu'ils n'interagissent pas bien. Je vais essayer de le désactiver. –

+0

Hmm, on dirait que local :: lib et perlbrew ne jouent pas bien ensemble. Cela semble être mon problème. –

+0

duplication possible de [Comment gérer les modules Perl lors de l'utilisation d'un gestionnaire de paquets?] (Http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package -manager) – Ether

Répondre

11

Vous pouvez installer chaque perl complètement séparé de toute autre installation Perl. C'est binaires et les modules seront complètement séparés les uns des autres. Essentiellement, lorsque vous installez chaque Perl vous lui donnez son propre préfixe:

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

Tout est installé sous ce préfixe, et tous les programmes dans le bac / utilisera que Perl particulier. Je vais dans ce plus en profondeur dans Programmation Perl effective.

À partir de là, je fais des liens symboliques dans mon ~/bin à chacun de ces programmes et joindre le numéro de version à elle, donc je ~/perl5.12.1, perldoc5.12.1, etc. . Je n'ai jamais à choisir d'avoir une version comme le veut la perlbrew. J'écris plus à ce sujet dans Make links to per-version tools. dans le blog Effective Perler.

Vous pouvez utiliser local :: lib pour cela, mais il est vraiment conçu pour fonctionner avec une version de Perl et utiliser un répertoire de bibliothèque personnel. Vous pouvez lui dire d'utiliser un autre répertoire, mais à ce moment-là, il ne vous économise vraiment rien de la manière traditionnelle.

+0

Merci de préciser que local :: lib est réservé à une seule version. J'ai désactivé local :: lib et perlbrew semble bien se débrouiller tout seul. –

+0

Je pense que -Dprefix pourrait ne pas être suffisant; Je me suis retrouvé avec une installation perl qui a mis toutes ses libs au bon endroit, mais qui utilisait toujours/usr/local/bin pour les exécutables. Je ne suis pas encore retourné pour voir ce qui s'est passé, je mentionne donc ceci comme une note de bas de page avertissant les gens de faire attention aux configurations qui sont générées via -es. – Ether

+0

Donc, y at-il un moyen pour que local :: lib fonctionne correctement avec plusieurs versions de Perl et modules XS, ou devrais-je le désactiver et laisser Perlbrew gérer tout? –