2010-08-04 7 views
2

CPAN échoue avec cette erreur bizarre comme suitComment installer Devel :: Cover sur ActivePerl 5.8.7?

 
Error: Unable to locate installed Perl libraries or Perl source code. 

It is recommended that you install perl in a standard location before 
building extensions. Some precompiled versions of perl do not contain 
these header files, so you cannot build extensions. In such a case, 
please build and install your perl from a fresh perl distribution. It 
usually solves this kind of problem. 

(You get this message, because MakeMaker could not find "D:\fbl_esc_bcd_tb\tools\perl\lib\CORE\perl.h") 
Running make test 
    Make had some problems, maybe interrupted? Won't test 
Running make install 
    Make had some problems, maybe interrupted? Won't install 

Le problème est que je ne peux pas installer de nouvelles versions de perl actives dans cet environnement et l'outil que je veux une couverture sur ne fonctionne pas en dehors de cet environnement.

+1

Ce n'est pas une erreur étrange; il vous dit exactement quel est le problème. Pouvez-vous être plus précis sur les deux points du dernier paragraphe? Pourquoi ne pouvez-vous pas installer de nouvelles versions de Perl (les chances sont que vous pouvez), et pourquoi ne pouvez-vous pas exécuter votre outil en dehors de cet environnement (les chances sont aussi que vous pouvez)? – Ether

+0

parce que ce perl est nécessaire pour amorcer l'environnement. l'outil dépend également de l'environnement. –

+1

Je peux installer Devel-Cover très bien avec PPM sur mon AS Perl 5.10 – Fozi

Répondre

3

Réponse courte: Le ActiveState PPM repository a une version précompilée de Devel :: Cover que vous devriez pouvoir installer. Réponse longue: Ce n'est pas un message normal de MakeMaker, donc je suis prêt à deviner qu'il s'agit d'un ajout ActiveState, mais c'est probablement vrai. Le problème est exactement ce que le message d'erreur dit; votre distribution manque des fichiers importants, en particulier les fichiers d'en-tête C pour Perl, donc elle ne peut pas compiler le code C nécessaire pour les modules comme Devel :: Cover. C'est souvent le résultat d'un sysadmin ou d'un emballeur trop zélé qui cherche à sauver quelques dizaines de K d'espace disque. Vous pouvez probablement prendre the header files from the 5.8.7 source, les copier dans le répertoire CORE et il probablement travail. Cela ne fera rien de pire. Je suis d'accord avec Evan que, en supposant que ce soit une machine Windows, vous devriez passer à Strawberry Perl, qui joue beaucoup mieux avec le reste de la communauté Perl qu'ActivePerl.

Sinon, ActiveState est une société commerciale et a pris en charge le support Perl. Donnez-leur une bague.

3

Active Perl n'utilise pas CPAN. Si vous voulez utiliser CPAN, utilisez Strawberry Perl. Active Perl utilise la distribution binaire via son système ppm. Il ya quelques repos de tiers pour cela si le fonctionnaire n'a pas Devel::Cover - bien que le fonctionnaire a probablement Devel :: Cover.

La plupart des gens passent ces jours-ci à la fraise et loin de la SA. À mon avis, il est beaucoup plus stable et respectueux des CPAN, et sûrement moins propriétaire. Aussi, s'attendre à être en mesure d'obtenir des versions stables de la plupart des choses - AS a été connu pour retarder les années dans de nombreuses occasions dans les dépôts officiels. Fraise est également livré avec son propre compilateur et l'environnement de construction de sorte que vous pouvez même obtenir des versions ::XS en toute simplicité.

+0

Problème: je ne peux pas installer de nouvelles versions de perl actives dans cet environnement et l'outil sur lequel je veux effectuer la couverture ne s'exécute pas en dehors de cet environnement. Aussi, je vois le module cpan à l'intérieur disponible. –

+0

@DotDot, à droite, mais avec AS vous n'avez pas d'environnement de construction, donc CPAN n'est bon que pour les modules PP, et parfois seulement. Vous avez trois options: (a) Strawberry Perl, (b) PPM, (c) la folie. Vous choisissez. –

+4

Je choisis INSANITY! * allume les cheveux en feu et court en criant hors de la pièce * – Schwern

Questions connexes