2012-02-20 13 views
9

Parece que tengo un problema de configuración al instalar módulos Perl a través de CPAN y no sé cómo corregirlo:CPAN de Perl módulos instalador no encontrar archivo tar

[[email protected] JESSE]# pwd 
/root/.cpan/sources/authors/id/J/JE/JESSE 

[[email protected] JESSE]# ls -l 
total 240 
-rw-r--r-- 1 root root 105464 Feb 20 11:39 CHECKSUMS 
-rw-r--r-- 1 root root 9223 Apr 12 2011 Locale-Maketext-Simple-0.21.tar.gz 
-rw-r--r-- 1 root root 125483 Feb 20 11:39 WWW-Mechanize-1.72.tar.gz 

[[email protected] JESSE]# cpan -i WWW::Mechanize 
CPAN: Storable loaded ok (v2.20) 
Reading '/root/.cpan/Metadata' 
    Database was generated on Mon, 20 Feb 2012 11:10:26 GMT 
Running install for module 'WWW::Mechanize' 
Running make for J/JE/JESSE/WWW-Mechanize-1.72.tar.gz 
CPAN: Digest::SHA loaded ok (v5.61) 
CPAN: Compress::Zlib loaded ok (v2.033) 
Checksum for /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz ok 
CPAN: Archive::Tar loaded ok (v1.82) 
Uncompressed /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz successfully 
Using Tar:/bin/tar xvf "WWW-Mechanize-1.72.tar": 
Couldn't untar WWW-Mechanize-1.72.tar 
CPAN: File::Temp loaded ok (v0.22) 
CPAN: CPAN::Meta loaded ok (v2.112150) 
Package seems to come without Makefile.PL. 
    (The test -f "/root/.cpan/build/JESSE-n72IRU/Makefile.PL" returned false.) 
    Writing one on our own (setting NAME to WWWMechanize) 
    Had problems unarchiving. Please build manually 
Running make test 
    Make had some problems, won't test 
Running make install 
    Make had some problems, won't install 

[[email protected] JESSE]# ls -l 
total 240 
-rw-r--r-- 1 root root 105464 Feb 20 11:39 CHECKSUMS 
-rw-r--r-- 1 root root 9223 Apr 12 2011 Locale-Maketext-Simple-0.21.tar.gz 
-rw-r--r-- 1 root root 125483 Feb 20 11:39 WWW-Mechanize-1.72.tar.gz 

[[email protected] JESSE]# which tar 
/bin/tar 

[[email protected] JESSE]# which gzip 
/bin/gzip 

El problema parece ser aquí:

Uncompressed /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz successfully 
Using Tar:/bin/tar xvf "WWW-Mechanize-1.72.tar": 
Couldn't untar WWW-Mechanize-1.72.tar 

El archivo tar es de hecho sin comprimir y se puede encontrar aquí en un nuevo directorio:

/root/.cpan/build/JESSE-KjCEMS/WWW-Mechanize-1.72.tar 

Si funciono el mismo comando desde el interior de la concha, me sale algo más de información:

cpan[1]> install WWW::Mechanize 
CPAN: Storable loaded ok (v2.20) 
Reading '/root/.cpan/Metadata' 
    Database was generated on Mon, 20 Feb 2012 11:10:26 GMT 
Running install for module 'WWW::Mechanize' 
Running make for J/JE/JESSE/WWW-Mechanize-1.72.tar.gz 
CPAN: Digest::SHA loaded ok (v5.61) 
CPAN: Compress::Zlib loaded ok (v2.033) 
Checksum for /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz ok 
Scanning cache /root/.cpan/build for sizes 
Use of uninitialized value $newdir in substitution (s///) at /usr/lib64/perl5/Cwd.pm line 502. 
Use of uninitialized value $newdir in chdir at /usr/lib64/perl5/Cwd.pm line 510. 
Use of chdir('') or chdir(undef) as chdir() is deprecated at /usr/lib64/perl5/Cwd.pm line 510. 
Use of uninitialized value $newdir in pattern match (m//) at /usr/lib64/perl5/Cwd.pm line 525. 
Use of uninitialized value $newdir in split at /usr/lib64/perl5/Cwd.pm line 531. 
..........................................................................--DONE 
DEL(1/10): /root/.cpan/build/CPAN-1.9600-jGTV10 
DEL(2/10): /root/.cpan/build/File-Which-1.09-yoVWZC 
DEL(3/10): /root/.cpan/build/Test-Script-1.07-aJWrXb 
DEL(4/10): /root/.cpan/build/Probe-Perl-0.01-gzZ2eR 
DEL(5/10): /root/.cpan/build/IPC-Run3-0.044-AP6EMp 
DEL(6/10): /root/.cpan/build/Time-HiRes-1.9721-xxseE6 
DEL(7/10): /root/.cpan/build/CPAN-Meta-YAML-0.003-wGtH0a 
DEL(8/10): /root/.cpan/build/JSON-PP-2.27105-fvkwNa 
DEL(9/10): /root/.cpan/build/Package-Constants-0.02-7Ms_OL 
DEL(10/10): /root/.cpan/build/Module-Metadata-1.000004-tXKIBB 
CPAN: Archive::Tar loaded ok (v1.82) 
Uncompressed /root/.cpan/sources/authors/id/J/JE/JESSE/WWW-Mechanize-1.72.tar.gz successfully 
Using Tar:/bin/tar xvf "WWW-Mechanize-1.72.tar": 
Couldn't untar WWW-Mechanize-1.72.tar 
CPAN: File::Temp loaded ok (v0.22) 
CPAN: CPAN::Meta loaded ok (v2.112150) 
Package seems to come without Makefile.PL. 
    (The test -f "/root/.cpan/build/JESSE-DGrTh_/Makefile.PL" returned false.) 
    Writing one on our own (setting NAME to WWWMechanize) 
    Had problems unarchiving. Please build manually 
Running make test 
    Make had some problems, won't test 
Running make install 
    Make had some problems, won't install 
Failed during this command: 
JESSE/WWW-Mechanize-1.72.tar.gz    : unwrapped NO -- untar failed 

Me parece que $ newdir no está siendo actualizado con la genera dinámicamente /root/.cpan/build/JESSE-DGrTh_/ o /root/.cpan/build/JESSE-KjCEMS/ o lo genera el sistema o al menos esa información no está llegando al comando tar

¿Alguien sabe cómo puedo arreglar el mecanismo sin tener que recurrir a una instalación manual?

+0

Cuando ejecuto 'cpan', me dice que está utilizando Storable 2.30, por lo que es poco probable que su instalación esté completamente actualizada. La salida de 'cpan --version' dice 'CPAN 1.57' (más o menos). Sin embargo, eso no explica el problema, a menos que sea un defecto en la versión que está utilizando. ¿Es solo WWW :: Mechanize, o todos los módulos que se ven afectados? (Usualmente uso 'cpanp'; al final utilicé 'cpan' en noviembre, al parecer. Y WWW :: Mechanize ya estaba actualizado.) –

+0

Estoy de acuerdo con Jonathan, actualice ['Bundle :: CPAN'] (http://p3rl.org/Bundle::CPAN) primero; no tiene sentido depurar el software obsoleto. – daxim

+0

Hice una actualización pero decía que todo estaba actualizado. Esta era la parte pertinente del CPAN -O – user1164594

Respuesta

0

Disparo en el azul: la partición está llena. Eliminar algunos archivos.

9

Editar:

Me encontré con este problema de nuevo. Todo lo que tenía que hacer era liberar algo de memoria, como sugirió Keith Broughton.


Me encontré con el mismo problema e intenté encontrar la causa de este problema. Estoy enumerando mis hallazgos aquí para que otros Googlers no tengan que pasar un par de horas antes de renunciar ...

Lo que me solucionó fue simplemente reiniciando el sistema.

cosas que intenté: CPAN

  • actualización. Esto también fallaría con el mensaje de error "No se pudo deshacer". No me importa si lo intenta usando el shell cpan, "cpan -i CPAN" o "perl -MCPAN -e 'instalar CPAN'". No creo que ninguno de estos solucione el problema, pero cuando comienzas a buscar en Google, se sugieren todos estos como posibles soluciones.
  • Reemplazando tar con un script que registra su entrada para verificar si uno de los parámetros o cwd es incorrecto cuando se llama. El guión nunca se llama como parece. El mensaje "No se pudo deshacer" sigue siendo el mismo, incluso después de renombrar temporalmente/bin/tar.
  • Comprobando CPAN/Tarzip.pm y agregando líneas de impresión cerca del código que escribe el mensaje "No se pudo deshacer". Parece que la llamada al sistema() falla y tar (o ls en mi código de depuración) nunca se llama.

Luego decidí reiniciar, que era una opción porque este no es un sistema en vivo. Después de eso, el problema desapareció y los módulos de Perl se instalaron en el primer intento.

Otras observaciones:

  • el sistema parece funcionar muy bien para el resto.Todavía puede conectarse al sistema, puede editar archivos, las modificaciones siguen allí después del reinicio. Esperaría que alguno de estos fallara mucho antes de que una llamada al sistema Perl() comience a fallar.
  • Un escaneo rápido a través de los archivos de registro no muestra ninguna bandera roja.
7

A veces esto puede suceder simplemente debido a la falta de memoria disponible. Intente desactivar algunos servicios que se están ejecutando e intente de nuevo.

Trabajado para mí :-)

+1

esto fue exactamente mi problema. Después de liberar algo de memoria, todo funcionó bien. – greatwitenorth

3

Para resolver el error siguiente:

Couldn't untar WWW-Mechanize-1.72.tar 

Trate de instalar Archive::Tar

en CentOS 6.x:

yum install perl-Archive-Tar.x86_64 
Cuestiones relacionadas