2010-10-08 26 views
5

J'utilise actuellement perlbrew pour gérer plusieurs versions de perl, mais perlbrew est global. Si je fais perlbrew switch perl-5.10.1 dans n'importe quel shell, alors tous les shells et scripts utiliseront maintenant perl version 5.10.1. Il n'y a pas d'isolement. Existe-t-il un moyen de rendre les commutateurs perlbrew locaux à un shell, ou existe-t-il un outil similaire capable de changer localement le perl actif?Existe-t-il un équivalent non global de perlbrew?

+0

Voir aussi [Comment installer plusieurs versions de Perl?] (Http://stackoverflow.com/questions/1289564/how-should-i-install-more-than-one-version-of-perl) et [http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package-manager/398397#398397](Comment gérez-vous les modules Perl lors de l'utilisation un gestionnaire de paquets?) – Ether

+0

Voir cette question/réponse SO: http://stackoverflow.com/questions/3776390/how-can-i-control-the-perl-version-used-when-submitting-grid-jobs/ 3776538 # 3776538 – draegtun

Répondre

4

Dans les versions plus récentes de Perlbrew, vous pouvez faire perlbrew use perl-5.12.3 ou autre et vous utiliserez cette version de Perl, mais uniquement dans la session shell actuelle. Les autres sessions ne seront pas affectées.

+0

Je vais devoir essayer ça. Cela ressemble exactement à ce que je veux. –

5

N'utilisez simplement pas perlbrew. Tout ce qu'il fait est de changer les liens symboliques pour vous. C'est censé vous sauver du travail, mais quand ce n'est pas le cas, il n'y a plus de raison de l'utiliser. Je parle de la façon dont je le fais en Make links to per-version tools en The Effective Perler. Je sais toujours quel perl j'utilise parce que je n'ai jamais besoin de me souvenir de laquelle j'ai basculé pour durer, et je ne perturbe rien d'autre qui attend une version particulière derrière un lien symbolique. Vous pouvez toujours utiliser perlbrew pour installer perls, mais cela ne vous épargnera pas non plus beaucoup de travail.

+0

[Également commenté ici] (http://stackoverflow.com/questions/398221/how-do-you-manage-perl-modules-when-using-a-package-manager/398397#398397) en savoir plus détail. – Ether

+1

Je sais que je peux toujours installer perl 5.10.1 en tant que 'perl5.10.1' dans mon chemin, puis spécifier les versions explicitement, mais je suppose que le comportement que je cherche est que' perl' exécute une certaine version par défaut de perl . Ensuite, si je lance 'perlbrew switch' dans un shell, alors' perl' dans ce shell fait référence à la nouvelle version, mais tous les autres shell et programmes continuent d'exécuter le perl par défaut. Et idem pour le reste de l'environnement perl: modules, exécutables, pages de manuel/perldocs. Je suppose que je vais devoir apprendre à utiliser le package Furlani Modules auquel votre article est lié afin d'obtenir ce que je veux. –

+1

Je suggère juste de redéfinir ce que vous voulez. C'est moins de travail. :) –