Comment puis-je installer une version spécifique d'un ensemble de modules Perl?
Je suis chargé de reproduire un environnement de production pour créer de nombreux test/sit environnements.
L'une des choses que j'ai besoin de faire est de construire Perl, avec tous les modules qui ont été installés (y compris internes et externes des modules) au fil des ans. Je pourrais simplement utiliser CPAN.pm autobundle, mais cela se traduira dans l'environnement de test avoir beaucoup de versions plus récentes des modules externes que la production a.
Quelle est la plus facile et la meilleure façon d'obtenir et d'installer un peu (beaucoup) la version spécifique de modules Perl.
OriginalL'auteur Matthew Watson | 2008-11-04
Vous devez vous connecter pour publier un commentaire.
Faire votre propre miroir CPAN avec exactement ce que vous voulez. Stratopan.com, un service, et Pinto, des outils qui est construit sur haut de, peut vous aider à le faire.
Le CPAN outils seulement installer la dernière version de la distribution parce que la PAUSE seulement des indices de la dernière version. Toutefois, vous pouvez créer votre propre, privé CPAN qui a exactement les distributions que vous voulez. Une fois que vous avez votre propre miroir CPAN avec seulement ce que vous voulez, vous pointez votre CPAN outils à seulement le miroir de sorte qu'il n'installe que ces versions. Plus sur cela dans une minute.
Maintenant, vous voulez avoir plusieurs versions de l'. Vous pouvez créer autant de miroirs que vous le souhaitez, vous pouvez également mettre les miroirs de contrôle de la source de sorte que vous pouvez vérifier sur n'importe quelle version du miroir que vous le souhaitez.
Des outils tels que CPAN::Mini::Injecter peuvent vous aider à définir votre propre CPAN. Découvrez mes présentations sur Slideshare pour les exemples de base, et certains de mes vidéos sur Vimeo pour certaines manifestations. Regardez tout ce qui a "CPAN" ou "BackPAN" dans le titre. Je pense que je pourrais avoir quelques trucs à ce sujet dans Le Perl Review trop, ou devrait d'ici à la prochaine question. 🙂
Dernièrement, j'ai travaillé sur un programme appelé dpan (pour DarkPAN) qui peuvent regarder au hasard des répertoires, trouver Perl distributions en eux, et de créer la structure et les fichiers d'index que vous avez besoin. Vous exécutez dpan, vous obtenez une URL pour pointer votre CPAN client vers, et vous partez. C'est une partie de mon MyCPAN-Indexeur projet, qui est en Github. Ce n'est pas tout à fait prêt pour sans surveillance de l'utilisation publique parce que je travaille principalement avec des sociétés clients de personnaliser leur installation. Si vous êtes intéressés, n'hésitez pas à me poser des questions si.
Aussi, j'ai récemment publié CPAN::PackageDetails qui peuvent vous aider à construire le bon fichier d'index. Il est encore un peu trop jeune, mais encore une fois, si vous avez besoin quelque chose de spécial, il suffit de demander.
OriginalL'auteur brian d foy
bdfoy a le meilleur à grande échelle de la solution, mais si vous voulez juste pour installer quelques modules, vous pouvez demander le shell CPAN pour installer une distribution spécifique par la référence à un chemin d'accès à une archive (par rapport au haut de la CPAN arbre).
Lancer une URL à BackPAN dans votre liste d'URL et vous pouvez installer une version plus ancienne.
C'est dans le CPAN.pm FAQ à la rubrique "comment puis-je installer un" DÉVELOPPEUR de presse " d'un module?"
je ne pense pas que l'URL travaille ces jours-ci. ce qu'on fait, si: backpan.perl.org
install MSCHWERN/Test-Simple-0.62.tar.gz
@Schwern je pense que vous avez besoin de lop de la M/MS préfixe à faire pour trouver le tarballLe style semble fonctionner, mais vous avez raison que le vôtre est l'documenté et il est plus simple. Notez que ni l'un va travailler pour Test-Simple-0.62.tar.gz sauf si vous utilisez un BackPAN URL.
Il fixe
OriginalL'auteur Schwern
(Carton, comme mentionné dans d'autres réponses, utilise
cpanm
dessous pour résoudre explicite exigences de version.)Parfait: sur debian->
aptitude install cpanminus
OriginalL'auteur Ether
[C'est près de cinq ans et c'est un bien posées et bien répondu à la question qui a eu beaucoup de points de vue. Depuis cette page doit toujours venir dans les recherches Google, une mise à jour ne peut pas faire de mal.]
Carton
est intéressant de mentionner ici.Carton
est relativement récente de l'outil dans le même style queApp::cpanminus
,App::cpanoutdated
,perlbrew
, et. al. L'auteur (Miyagawa) l'appelle "alpha" de qualité, mais même dans son état actuel carton permet de simplifier la maintenance de plusieurs environnements de version à l'écoute des modules sur des machines.Pinto
trop est un autre outil pertinent pour un certain nombre de réponses (en fait l'un des répondants est un contributeur).OriginalL'auteur G. Cito
Stratopan.com est une autre alternative. Stratopan fournit privé CPANs dans le cloud. Vous pouvez remplir votre Stratopan référentiel avec des versions spécifiques de modules (et leurs dépendances), puis les installer en utilisant le standard de Perl outil de la chaîne. Les changements de référentiel uniquement lorsque vous décider de le modifier, de sorte que vous aurez toujours obtenir les versions des modules que vous souhaitez.
Avertissement: je fonctionne Stratopan.
OriginalL'auteur Jeffrey Ryan Thalhammer
Il semble que la création d'un
cpanfile
liste de tous vos modules et souhaité versions (à l'aide de la== <version>
syntaxe pour le verrouiller à une version spécifique) pourrait bien servir ici, trop. Que signifierait l'aide deCarton
oucpanm
pour installer les modules.Faisant cela aurait l'avantage de pouvoir rapidement/facilement modifier le fichier de test de la mise à niveau des modules spécifiques dans un dev ou la mise en scène de l'environnement - quelque chose que privé miroir CPAN ne pas vous laisser faire (sans créer de multiples miroirs).
OriginalL'auteur Randall