CPAN-problemen op Windows XP

Ik veronderstel om een ​​installatie van een paar modules Perl op een doos van Vensters te doen. Dit is een UAT-box voor klanten, dus ik heb geen idee hoe deze is geconfigureerd of door wie. We hebben de installatie in de Dev-box gedaan en alles werkte zoals geadverteerd.

In de box wordt Cygwin uitgevoerd en Perl 5.8.8 is geïnstalleerd. Ik kan het niet updaten of Cygwin opnieuw installeren. Ik moet gebruiken wat ik heb.

Ik heb geprobeerd Spreadsheet te installeren :: Lees dit op het systeem en kreeg de volgende foutmelding:

  CPAN.pm: Going to build F/FD/FDALY/Test-Tester-0.107.tar.gz

 Checking if your kit is complete...
 Looks good
 Unable to find a perl 5 (by these names: /usr/bin/perl.exe perl.exe perl5.exe pe
 rl5.8.7.exe miniperl.exe, in these dirs: /usr/local/bin /usr/bin /bin /usr/X11R6
 /bin /cygdrive/d/oracle/product/10.2.0/client_1/bin /cygdrive/c/WINDOWS/system32
 /cygdrive/c/WINDOWS /cygdrive/c/WINDOWS/System32/Wbem /usr/bin /cygdrive/d/APPL
 IC~1/MCAFEE~1 /cygdrive/d/Applications/PowerCenter8.6.1/server/bin /usr/lib/lap

Wat? Kan het Perl 5 niet vinden? Daar staat het daar in /usr/bin/perl.exe in Cygwin!

Er is ook een probleem met make, maar één ding tegelijk ... gcc is geïnstalleerd op Cygwin, dus dat is geen probleem.

Wat is er in vredesnaam aan de hand? Ik heb .cpan in /cygdrive/p/.cpan , maar dat komt omdat mijn HOME -directory daar is gedefinieerd. (Het is een zakelijke zaak).

Enig idee?

Ik moet Spreadsheet :: Read , Spreadsheet :: ParseExcel en Spreadsheet :: XLSX installeren. Is het mogelijk om de installatie te muniken als CPAN zijn ding niet doet, of zijn er gecompileerde spullen nodig? Vergeet niet dat Make ook acteert.


Elke kans dat je Strawberry Perl kunt gebruiken en de Cygwin-hoofdpijn achter je kunt laten?

Ik heb het al gevraagd. Het antwoord is nee.

U zegt dat u 5.8.8 hebt, maar het zoekt perl5.8.7.exe. Plaats de $ PATH.

Het is Perl 5.8.7. Mijn fout.

Pad:

/usr/local/bin
/usr/bin
/bin
/usr/X11R6/bin
/cygdrive/d/oracle/product/10.2.0/client_1/bin
/cygdrive/c/WINDOWS/system32
/cygdrive/c/WINDOWS
/cygdrive/c/System32/Wbem
/usr/bin
/cygdrive/d/APPLIC~1/MFAFEE~1
/cygdrive/d/ApplicationsPowerCenter8.6.1/server/bin
/usr/lib/lapack

Hebt u gecontroleerd in welke staat dit bericht daadwerkelijk wordt weergegeven?

Er was niet veel van een aandoening. Het downloadde alles dan dat bericht.

Wat is de uitvoer van perl -le'print ((-x "/usr/bin/perl.exe") || 0) '

Je wint: de rechten waren -rwx ------ . Ik kan niet geloven dat ik dat gemist heb.

Wat is de uitvoer van /usr/bin/perl.exe -e "vereist 5; print qq {VER_OK \ n}" - ikegami 1 uur geleden

VER_OK


Om wat voor reden dan ook, kon ik/usr/bin/perl uitvoeren, en zeker CPAN moest (is het geen Perl-programma?), Maar toen CPAN ernaar op zoek was, kon het het niet vinden omdat de permissies waren verprutst.

2
Is er een kans dat je Strawberry Perl kunt gebruiken en de Cygwin-hoofdpijn achter je kunt laten?
toegevoegd de auteur Eric Strom, de bron
Ik heb het probleem gevonden. ikegami was op de goede weg. Cygwin is nooit correct geïnstalleerd. De rechten op Perl waren -rwx ------ en de groep was mkgroup . Heeft een chmod gedaan, en nu werkt alles prima.
toegevoegd de auteur David W., de bron
@ikegami: Kunt u een echt antwoord geven, zodat ik u krediet kan geven?
toegevoegd de auteur David W., de bron
Heb je gecontroleerd in welke staat dat bericht daadwerkelijk wordt weergegeven?
toegevoegd de auteur ikegami, de bron
Wat is de uitvoer van perl -le'print ((-x "/usr/bin/perl.exe") || 0) '
toegevoegd de auteur ikegami, de bron
Wat is de uitvoer van /usr/bin/perl.exe -e "vereist 5; print qq {VER_OK \ n}"
toegevoegd de auteur ikegami, de bron
U zegt dat u 5.8.8 hebt, maar het zoekt perl5.8.7.exe . Plaats de $ PATH .
toegevoegd de auteur Sinan Ünür, de bron

2 antwoord

Het bericht komt van ExtUtils :: MakeMaker. Het bericht is het resultaat van het niet vinden van een uitvoerbaar bestand (-x) dat geen directory is (! -D) die -e "kan uitvoeren, 5 vereisen; print qq {VER_OK \ n}" .

Controleer dus de permissies van je Perl,

perl -le'print( (-x "/usr/bin/perl.exe") || 0 )' 

en als het erop aan komt dat het bovenstaande als waar wordt geretourneerd, zorg dan voor de volgende runs:

/usr/bin/perl.exe -e "require 5; print qq{VER_OK\n}"
2
toegevoegd
De -x /usr/bin/perl.exe is mislukt vanwege de machtigingen. Ik dacht niet dat het een toestemmingsprobleem was omdat Cygwin liep en dat zou het zeker niet zijn als Perl er niet was. Ik heb ook een gedaan die perl en /usr/bin/perl heeft getoond. En, typ /usr/bin/perl -V ook uitgeprint alles wat gewoon te vinden is. De machtigingen zijn hersteld, de modules zijn geïnstalleerd en ik kan de spreadsheets converteren. Iemand met Informatica op hun systeem zal controleren of Informatica ook het script kan uitvoeren.
toegevoegd de auteur David W., de bron

Ik weet dat het nu een beetje laat is (sorry, ik heb net de vraag gezien), en dit beantwoordt echt je vraag niet, maar voor situaties waarin je niet kunt "rotzooien" met de machine waar je veel aan werkt, heb ik gevonden draagbare aardbei perl is een leuke oplossing voor sommige problemen.

1
toegevoegd
Het probleem is dat dit geen machine is voor mijn gebruik. Dit is een UAT-machine voor een van onze klanten. We gebruiken Informatica om shell-scripts in Cygwin uit te voeren. We hadden een manier nodig om Excel-spreadsheets naar CSV te converteren, zodat ze shell-scripts konden schrijven om de informatie te ontleden. Ik verklaarde dat Perl die goeie dandy kon doen. De installatie van de vereiste Perl-modules werkte echter niet. Het komt erop neer dat Cygwin nooit correct is geïnstalleerd en dat de toestemmingen gek waren.
toegevoegd de auteur David W., de bron
@DavidW. - Ik kan niet zeggen dat ik van Informatica heb gehoord, maar ja ik kreeg het verhaal van de opmerkingen en je antwoord. "Is jouw machine niet" - daarom heb ik het voorgesteld; het leek een snellere oplossing voor je problemen, en je kunt het altijd nemen/of het eenvoudigweg achteraf verwijderen. Hoe dan ook, blij dat je je probleem hebt opgelost.
toegevoegd de auteur Rook, de bron