11

It seems I have a configuration problem when installing Perl modules through CPAN and I don't know how to correct it:

[root@ip JESSE]# pwd
/root/.cpan/sources/authors/id/J/JE/JESSE

[root@ip 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

[root@ip 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

[root@ip 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

[root@ip JESSE]# which tar
/bin/tar

[root@ip JESSE]# which gzip
/bin/gzip

The problem seems to be here:

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

The tar.gz file is indeed uncompressed and can be found here in a new directory:

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

If I run the same command from inside the shell, I get some more info:

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

It seems to me that $newdir is not being updated with the dynamically generated /root/.cpan/build/JESSE-DGrTh_/ or /root/.cpan/build/JESSE-KjCEMS/ or whatever the system generates or at least that information is not getting to the tar command

Does anyone know how I can fix the mechanism without having to resort to a manual install ?

Ouki
  • 486
  • 1
  • 15
  • 19
user1164594
  • 161
  • 1
  • 1
  • 6
  • When I run 'cpan', it tells me it is using Storable 2.30, so it is unlikely that your installation is fully up to date. The output from `cpan --version` says 'CPAN 1.57' (sort of). However, that doesn't explain the problem, unless it was a defect in the version you are using. Is it just WWW::Mechanize, or all modules that are affected? (I usually use 'cpanp'; I'd last used 'cpan' in November, it seems. And WWW::Mechanize was already up to date.) – Jonathan Leffler Feb 20 '12 at 15:55
  • I concur with Jonathan, upgrade [`Bundle::CPAN`](http://p3rl.org/Bundle::CPAN) first; no sense in debugging outdated software. – daxim Feb 20 '12 at 17:29
  • I did an upgrade but it said everything was up to date. This was the relevant part of cpan -O – user1164594 Feb 20 '12 at 23:32
  • CPAN::Meta::Converter 2.1122 2.1204 CPAN::Meta::Feature 2.1122 2.1204 CPAN::Meta::History 2.1122 2.1204 CPAN::Meta::Prereqs 2.1122 2.1204 CPAN::Meta::Spec 2.1122 2.1204 CPAN::Meta::Validator 2.1122 2.1204 CPAN::Meta::YAML 0.0030 0.0070 – user1164594 Feb 20 '12 at 23:33
  • All modules are affected in the same way. – user1164594 Feb 20 '12 at 23:35

5 Answers5

13

Edit:

I ran into this problem again. All I needed to do was free some memory like Keith Broughton suggested.


I ran into the same problem and tried to find the root cause for this problem. I'm listing my findings here so other Googlers don't have to spend a couple of hours before giving up...

What solved it for me was simply rebooting the system.

Things I tried:

  • Upgrading CPAN. This would also fail with the "Couldn't untar" error message. I doesn't matter if you try it using the cpan shell, "cpan -i CPAN" or "perl -MCPAN -e 'install CPAN'". I didn't think any of these would solve the problem, but when you start googling all these are suggested as possible solutions.
  • Replacing tar with a script that logs its input to check if one of the parameters or cwd is incorrect when it is called. The script is never called it seems. The "Couldn't untar" message is still the same, even after temporarily renaming /bin/tar.
  • Checking CPAN/Tarzip.pm and adding print lines near the code that writes the "Couldn't untar" message. It seems that the system() call fails and tar (or ls in my debug code) is never called.

Then I decided to reboot, which was an option because this is not a live system. After that the problem was gone and Perl modules installed on first try.

Other observations:

  • The system seems to work just fine for the rest. You can still connect to the system, you can edit files, modifications are still there after the reboot. I would expect any of these to fail long before a Perl system() call starts to fail.
  • A quick scan through the logfiles doesn't show any red flags.
f.v.b
  • 131
  • 1
  • 6
  • I had the same problem while installing by "install Moose ". Was seeing error Couldn't untar Moose-2.2011.tar. Rebooting the server fixed this. Thanks – Santosh Pillai May 03 '19 at 14:51
8

Sometimes this can happen simply due to a lack of available memory. Try turning off some services that are running and try again.

Worked for me :-)

Keith Broughton
  • 487
  • 5
  • 9
3

To resolve the following error:

Couldn't untar WWW-Mechanize-1.72.tar

Try install Archive::Tar

On centos 6.X:

yum install perl-Archive-Tar.x86_64
doitlikejustin
  • 6,293
  • 2
  • 40
  • 68
3

Found the same issue on DigitalOcean droplet with 512MB RAM running Ubuntu (with about 200MB free).

I was able to solve it by rebooting the machine, I tried updating my CPAN using 'install Bundle::CPAN'. It worked for the first few modules, and then the 'Couldn't untar' message appeared again.

Rebooting allowed me to progress in the installation. These repeated reboots are of course a less than optimal solution.

Given that the system has free memory, and the issue re-appears after using the machine for a little while, it seems to be this could be related to an issue with shared libraries.

Ramonchis
  • 31
  • 3
0

Shot in the blue: partition is full. Delete some files.

daxim
  • 39,270
  • 4
  • 65
  • 132