CPAN Perl modules installer not finding tar file
Solution 1
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.
Solution 2
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 :-)
Solution 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
Solution 4
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.
user1164594
Updated on June 05, 2022Comments
-
user1164594 almost 2 years
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 commandDoes anyone know how I can fix the mechanism without having to resort to a manual install ?
-
greatwitenorth over 11 yearsthis was exactly my issue. After freeing up some memory, everything worked fine.
-
Matheus Araujo about 10 yearsIt happened with me at Digital Ocean too. Just REBOOT the machine and it will work, magically.
-
Santosh Pillai about 5 yearsI 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