J'ai une installation perl de fraise (v. 5.16.3) sur une boîte de production de fenêtres. Je suppose qu'il y a plusieurs lunes, quelqu'un l'a installé sur le disque C: puis l'a simplement déplacé vers D :. Je ne sais pas, je n'étais pas là, cependant cela fonctionne bien sauf quand j'essaye d'installer des modules. L'utilisation de cpanm ne fait que lancer les modules sur le lecteur C :. Pas bien. @INC ne va pas là-bas et l'administrateur ne veut rien de là-bas de toute façon. J'ai besoin d'eux avec Perl sur le D :.Essayer de forcer le CPAN à s'installer dans un répertoire spécifique pour Strawberry Perl
Alors, j'ai essayé d'utiliser CPAN et changer les répertoires:
cpan> o conf mbuildpl_arg "--install_base D:/strawberry/perl"
mbuildpl_arg [--install_base D:strawberryperl]
commit: wrote 'D:\strawberry\perl\lib/CPAN/Config.pm'
cpan> o conf makepl_arg "PREFIX=D:/strawberry/perl"
makepl_arg [PREFIX=D:/strawberry/perl]
commit: wrote 'D:\strawberry\perl\lib/CPAN/Config.pm'
cpan> install Email::Simple
Il a installé Email Simple D:/fraise/perl/lib - pas parfait, mais il fonctionne. Génial! Quelques autres passent par le même. Allez installer Module :: Runtime
cpan> install Module::Runtime
et cela va dans D:/strawberry/perl/lib/perl5. Huh? OK, pas parfait, mais mon @INC inclut D:/strawberry/perl/lib donc ça ne devrait pas poser de problème, non? Allez pour installer MooX :: Types :: MooseLike :: Base
cpan> install MooX::Types::MooseLike::Base
Ne pas installer. Voici le CPAN barf sur:
cpan> install MooX::Types::MooseLike::Base
Running install for module 'MooX::Types::MooseLike::Base'
Running make for M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
Checksum for D:\strawberry\cpan\sources\authors\id\M\MA\MATEU\MooX-Types-MooseLike-0.29.tar.gz ok
CPAN.pm: Building M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
Checking if your kit is complete...
Looks good
Warning: prerequisite Module::Runtime 0.014 not found.
... Detected uninstalled Perl. Trying to continue.
Have \strawb~1\perl\lib
Want \strawberry\perl\lib
Writing Makefile for MooX::Types::MooseLike
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- MATEU/MooX-Types-MooseLike-0.29.tar.gz ----
Module::Runtime [requires]
Running make test
Delayed until after prerequisites
Running make install
Delayed until after prerequisites
Running install for module 'Module::Runtime'
Running Build for Z/ZE/ZEFRAM/Module-Runtime-0.014.tar.gz
Has already been unwrapped into directory D:\strawberry\cpan\build\Module-Runtime-0.014-yHdcFp
Has already been made
Running Build test
Has already been tested successfully
Running Build install
Already done
Running make for M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
Has already been unwrapped into directory D:\strawberry\cpan\build\MooX-Types-MooseLike-0.29-UaWuDZ
CPAN.pm: Building M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz
Warning: Prerequisite 'Module::Runtime => 0.014' for 'MATEU/MooX-Types-MooseLike-0.29.tar.gz' already built but the resu
lt looks suspicious. Skipping another build attempt, to prevent looping endlessly.
cp lib/MooX/Types/MooseLike.pm blib\lib\MooX\Types\MooseLike.pm
cp lib/MooX/Types/MooseLike/Base.pm blib\lib\MooX\Types\MooseLike\Base.pm
MATEU/MooX-Types-MooseLike-0.29.tar.gz
D:\strawberry\c\bin\dmake.exe -- OK
Running make test
D:\strawberry\perl\bin\perl.exe "-ID:/strawberry/perl/lib" "-ID:/strawberry/perl/lib" "-MExtUtils::Command::MM" "-e" "te
st_harness(0, 'blib\lib', 'blib\arch')" t/*.t
t/basic.t ........................ Can't locate Module/Runtime.pm in @INC (@INC contains: D:\strawberry\cpan\build\MooX-
Types-MooseLike-0.29-UaWuDZ\blib\lib D:\strawberry\cpan\build\MooX-Types-MooseLike-0.29-UaWuDZ\blib\arch D:/strawberry/p
erl/lib D:/strawberry/perl/site/lib/MSWin32-x86-multi-thread D:/strawberry/perl/site/lib D:/strawberry/perl/vendor/lib D
:/strawberry/perl/lib .) at D:/strawberry/perl/lib/Moo/_Utils.pm line 23.
BEGIN failed--compilation aborted at D:/strawberry/perl/lib/Moo/_Utils.pm line 23.
Compilation failed in require at D:/strawberry/perl/lib/Moo.pm line 13.
BEGIN failed--compilation aborted at D:/strawberry/perl/lib/Moo.pm line 13.
Compilation failed in require at t/basic.t line 4.
BEGIN failed--compilation aborted at t/basic.t line 4.
t/basic.t ........................ Dubious, test returned 2 (wstat 512, 0x200)
No subtests run
t/builder.t ...................... Can't locate Module/Runtime.pm in @INC (@INC contains: D:\strawberry\cpan\build\MooX-
Types-MooseLike-0.29-UaWuDZ\blib\lib D:\strawberry\cpan\build\MooX-Types-MooseLike-0.29-UaWuDZ\blib\arch D:/strawberry/perl/lib D:/strawberry/perl/site/lib/MSWin32-x86-multi-thread D:/strawberry/perl/site/lib D:/strawberry/perl/vendor/lib
Et cette erreur se répète plusieurs fois, et tous les tests échouent, etc., etc.
Files=14, Tests=0, 1 wallclock secs (0.06 usr + 0.03 sys = 0.09 CPU)
Result: FAIL
Failed 14/14 test programs. 0/0 subtests failed.
dmake.exe: Error code 130, while making 'test_dynamic'
MATEU/MooX-Types-MooseLike-0.29.tar.gz
one dependency not OK (Module::Runtime); additionally test harness failed
D:\strawberry\c\bin\dmake.exe test -- NOT OK
//hint// to see the cpan-testers results for installing this module, try:
reports MATEU/MooX-Types-MooseLike-0.29.tar.gz
Running make install
make test had returned bad status, won't install without force
Stopping: 'install' failed for 'M/MA/MATEU/MooX-Types-MooseLike-0.29.tar.gz'.
Failed during this command:
MATEU/MooX-Types-MooseLike-0.29.tar.gz : make_test NO one dependency not OK (Module::Runtime); additionally test
harness failed
Ainsi, les questions ....
(1) Que dois-je faire pour placer Module :: Runtime au bon endroit? Ma précédente tentative de changer de répertoire a fonctionné pour certains, mais pas celle-ci. Je préférerais D: \ fraberry \ perl \ site \ lib - car il semble que cpanm mettrait ses modules là, mais D: \ strawberry \ perl \ lib fonctionnerait bien aussi.
Si nous fixons le numéro (1), cela n'a pas d'importance, mais je suis curieux de savoir si quelqu'un a une réponse:
(2) Pourquoi ne peut CPAN trouver du module Runtime, quand il est dans un des sous-répertoires de @INC? Donc, je sais qu'une réponse est de réinstaller fraise au bon endroit, mais c'est une boîte de production avec des scripts Perl en cours d'exécution et sans temps d'arrêt, donc non, ce n'est pas une option. Ils ne me permettront pas de le faire de toute façon.
Merci d'avance pour l'aide.
Travail possible: ajoutez 'D: \ fraberry \ perl \ lib5' à'% PERL5LIB% ' – mob
@mob Cela fonctionnerait à court terme et je pourrais mettre cela dans les variables d'environnement pour la session en cours et obtenir mon autre module chargé. Cependant, cela ressemble à un pansement sur un os cassé, car cela ne résout pas nécessairement la racine du problème. Vous avez dit que c'était un travail autour. Je devrais également redémarrer la machine pour mettre à jour l'environnement pour le reste de la machine, ce que je ne peux malheureusement pas faire. Donc, j'espère qu'il y a une solution à la racine du problème. installez les modules correctement, afin que d'autres problèmes ne se produisent pas sur la route. Merci pour la contribution si! – FrankRalphBob
@ikegami Merci pour votre contribution. Pouvons-nous vider cette réponse un peu? Je ne connais pas les différents types de modules (MB = Module :: Build & MM = ExtUtils :: MakeMaker?). J'ai parcouru quelques pages pour la documentation, mais je suis au sec. Y a-t-il quelque part une documentation qui explique quels sont les types et les conséquences de leur utilisation? Merci encore. – FrankRalphBob