cpan install module DBD::mysql fails, snow leopard - perl

I am installing dependancies for Koha. This is requiring perl and cpan usage, of which this is my first time. I installed mysql via the hivelogic instructions. I am running 10.6.2 on a 32bit mac mini.
Here is the terminal output:
John-Breedloves-Mac-mini:~ john_breedlove$ sudo -H cpan -i DBD::mysql
CPAN: Storable loaded ok (v2.19)
Going to read /var/root/.cpan/Metadata
Database was generated on Tue, 19 Jan 2010 14:52:55 GMT
Running install for module 'DBD::mysql'
CPAN: YAML loaded ok (v0.71)
Running make for C/CA/CAPTTOFU/DBD-mysql-4.013.tar.gz
CPAN: Digest::SHA loaded ok (v5.48)
CPAN: Time::HiRes loaded ok (v1.9715)
LWP not available
Trying with "/usr/bin/curl -L -f -s -S --netrc-optional" to get
http://www.perl.org/CPAN/authors/id/C/CA/CAPTTOFU/CHECKSUMS
Checksum for /var/root/.cpan/sources/authors/id/C/CA/CAPTTOFU/DBD-mysql-4.013.tar.gz ok
x DBD-mysql-4.013/
x DBD-mysql-4.013/lib/
x DBD-mysql-4.013/lib/DBD/
x DBD-mysql-4.013/lib/DBD/mysql.pm
x DBD-mysql-4.013/lib/DBD/mysql/
x DBD-mysql-4.013/lib/DBD/mysql/GetInfo.pm
x DBD-mysql-4.013/lib/DBD/mysql/INSTALL.pod
x DBD-mysql-4.013/lib/Bundle/
x DBD-mysql-4.013/lib/Bundle/DBD/
x DBD-mysql-4.013/lib/Bundle/DBD/mysql.pm
x DBD-mysql-4.013/mysql.xs
x DBD-mysql-4.013/dbdimp.c
x DBD-mysql-4.013/myld
x DBD-mysql-4.013/INSTALL.html
x DBD-mysql-4.013/Makefile.PL.embedded
x DBD-mysql-4.013/TODO
x DBD-mysql-4.013/README
x DBD-mysql-4.013/MANIFEST.SKIP
x DBD-mysql-4.013/ChangeLog
x DBD-mysql-4.013/Makefile.PL
x DBD-mysql-4.013/META.yml
x DBD-mysql-4.013/dbdimp.h
x DBD-mysql-4.013/eg/
x DBD-mysql-4.013/eg/prepare_memory_usage.pl
x DBD-mysql-4.013/eg/proc_example2b.pl
x DBD-mysql-4.013/eg/proc_example2.pl
x DBD-mysql-4.013/eg/decimal_test.pl
x DBD-mysql-4.013/eg/bug30033pg.pl
x DBD-mysql-4.013/eg/proc_example2a.pl
x DBD-mysql-4.013/eg/proc_example4.pl
x DBD-mysql-4.013/eg/bug21028.pl
x DBD-mysql-4.013/eg/bug14979.pl
x DBD-mysql-4.013/eg/bug30033.pl
x DBD-mysql-4.013/eg/issue21946.pl
x DBD-mysql-4.013/eg/proc_example3.pl
x DBD-mysql-4.013/eg/proc_example1.pl
x DBD-mysql-4.013/constants.h
x DBD-mysql-4.013/t/
x DBD-mysql-4.013/t/85init_command.t
x DBD-mysql-4.013/t/40listfields.t
x DBD-mysql-4.013/t/40bindparam.t
x DBD-mysql-4.013/t/mysql.mtest
x DBD-mysql-4.013/t/41bindparam.t
x DBD-mysql-4.013/t/76multi_statement.t
x DBD-mysql-4.013/t/40nulls.t
x DBD-mysql-4.013/t/32insert_error.t
x DBD-mysql-4.013/t/40catalog.t
x DBD-mysql-4.013/t/51bind_type_guessing.t
x DBD-mysql-4.013/t/40bindparam2.t
x DBD-mysql-4.013/t/41blobs_prepare.t
x DBD-mysql-4.013/t/20createdrop.t
x DBD-mysql-4.013/t/70takeimp.t
x DBD-mysql-4.013/t/42bindparam.t
x DBD-mysql-4.013/t/00base.t
x DBD-mysql-4.013/t/55utf8.t
x DBD-mysql-4.013/t/65types.t
x DBD-mysql-4.013/t/40server_prepare_error.t
x DBD-mysql-4.013/t/31insertid.t
x DBD-mysql-4.013/t/29warnings.t
x DBD-mysql-4.013/t/40types.t
x DBD-mysql-4.013/t/10connect.t
x DBD-mysql-4.013/t/lib.pl
x DBD-mysql-4.013/t/mysql.dbtest
x DBD-mysql-4.013/t/35limit.t
x DBD-mysql-4.013/t/71impdata.t
x DBD-mysql-4.013/t/40blobs.t
x DBD-mysql-4.013/t/40server_prepare.t
x DBD-mysql-4.013/t/40numrows.t
x DBD-mysql-4.013/t/35prepare.t
x DBD-mysql-4.013/t/40keyinfo.t
x DBD-mysql-4.013/t/75supported_sql.t
x DBD-mysql-4.013/t/60leaks.t
x DBD-mysql-4.013/t/50commit.t
x DBD-mysql-4.013/t/30insertfetch.t
x DBD-mysql-4.013/t/50chopblanks.t
x DBD-mysql-4.013/t/25lockunlock.t
x DBD-mysql-4.013/t/80procs.t
x DBD-mysql-4.013/MANIFEST
CPAN: File::Temp loaded ok (v0.20)
CPAN.pm: Going to build C/CA/CAPTTOFU/DBD-mysql-4.013.tar.gz
Can't locate DBI/DBD.pm in #INC (#INC contains: /opt/local/lib/perl5/site_perl/5.8.9/darwin-2level /opt/local/lib/perl5/site_perl/5.8.9 /opt/local/lib/perl5/site_perl /opt/local/lib/perl5/vendor_perl/5.8.9/darwin-2level /opt/local/lib/perl5/vendor_perl/5.8.9 /opt/local/lib/perl5/vendor_perl /opt/local/lib/perl5/5.8.9/darwin-2level /opt/local/lib/perl5/5.8.9 .) at Makefile.PL line 24.
Warning: No success on command[/opt/local/bin/perl Makefile.PL]
CAPTTOFU/DBD-mysql-4.013.tar.gz
/opt/local/bin/perl Makefile.PL -- NOT OK
Running make test
Make had some problems, won't test
Running make install
Make had some problems, won't install

The clue was in this line of your quoted output:
Can't locate DBI/DBD.pm in #INC...
You'll be seeing this type of error a lot as you develop in Perl! It means that you are missing a module dependency, generally because the module hasn't been installed from CPAN.
Therefore, you need to install DBI::DBD first before DBD::mysql. There are some complicated reasons why this isn't installed automatically by cpan as a prerequisite (usually when installing a module or distribution, it will automatically install all its dependencies):
PREREQ_PM tells MakeMaker that DBI (version 1.03 in this case) is required for this module. This will issue a warning that DBI 1.03 is missing if someone attempts to install your DBD without DBI 1.03. See CONFIGURE below for why this does not work reliably in stopping cpan testers failing your module if DBI is not installed.
CONFIGURE is a subroutine called by MakeMaker during WriteMakefile. By putting the require DBI::DBD in this section we can attempt to load DBI::DBD but if it is missing we exit with success. As we exit successfully without creating a Makefile when DBI::DBD is missing cpan testers will not report a failure. This may seem at odds with PREREQ_PM but PREREQ_PM does not cause WriteMakefile to fail (unless you also specify PREREQ_FATAL which is strongly discouraged by MakeMaker) so WriteMakefile would continue to call dbd_dbi_arch_dir and fail.
You can install both modules at once with:
sudo -H cpan DBI::DBD DBD::mysql

I spent a most of an evening googleing and trying the various directions to get DBD::mysql to work with my existing osx perl installation. I was making no progress and finally tried installing active perl. It comes with a perl package manager (ppm). From there, you can install a pure perl mysql driver (DBD::mysqlPP) and this bypasses all the compilation headaches. - Just be sure to change your code to use DBD::mysqlPP rather than DBD::mysql - in my case, I changed
this:
my $dsn = 'DBI:mysql:schemaName:localhost';
to this:
my $dsn = 'DBI:mysqlPP:schemaName:localhost';

Try installing DBI.pm first.

Related

Issues installing perl module Bio::Perl

I am having some issues installing Bio-DB-HTS (https://github.com/Ensembl/Bio-DB-HTS) requried to run a perl script from a cloned git repository.
System & Perl information
I am on Mac OSx High Sierra v.10.13.6 and using perl 5, version 18, subversion 2 (v5.18.2). I have added this information in my original question now.
Background information
When trying to perform a local installation, according to README instructions, i receive the error...
git clone https://github.com/Ensembl/Bio-DB-HTS.git
cd Bio-DB-HTS-2.10
perl INSTALL.pl
lzma.h library header not found in /usr/include
I tried to install the LZMA library but found that it actually was installed and that the lzma.h header file was simply missing from the path /usr/include. As LZMA is deprecated and replaced with XZ I installed the XZ library
brew install xz
After a quick search i found the lzma.h header in...
/usr/local/Cellar/xz/5.2.4/include/lzma.h
Main Issue
Now this is where I am not sure of how to proceed and if I have messed up something while trying to get around this. Since /usr/include has a directory with restricted access I added a line in the INSTALL.pl script to check existence for the file in both locations (which could probably disrupt something downstream in the analysis as I didn't change anything else except the if condition. However, when running the install this time i ran into a new problem.
perl INSTALL.pl
BioPerl does not seem to be installed. Please install it and try again.
On Debian/Ubuntu systems you can do this with the command:
apt-get install bioperl
On other systems use the CPAN shell:
perl -MCPAN -e 'install Bio::Perl'
And this is where my main issues reside. When trying to install Bio:Perl using cpan tests fail at various stage and I'm not sure which ones are the essential ones. The last lines from the output are
Result: FAIL
Failed 3/325 test programs. 16/19945 subtests failed.
CJFIELDS/BioPerl-1.007002.tar.gz
./Build test -- NOT OK
//hint// to see the cpan-testers results for installing this module,
try:
reports CJFIELDS/BioPerl-1.007002.tar.gz
Running Build install
make test had returned bad status, won't install without force
I reconfigured cpan to install dependancies automatically as mentioned here How do I tell CPAN to install all dependencies?.
perl -MCPAN -Mlocal::lib=~/perl5 -e 'my $c = "CPAN::HandleConfig"; $c->load(doit => 1, autoconfig => 1); $c->edit(prerequisites_policy => "follow"); $c->edit(build_requires_install_policy => "yes"); $c->commit'
And tried installing again forcing installation...
perl -f -MCPAN -e 'install Bio::Perl'
But I just get the same error
Result: FAIL
Failed 3/325 test programs. 16/19945 subtests failed.
CJFIELDS/BioPerl-1.007002.tar.gz
./Build test -- NOT OK
//hint// to see the cpan-testers results for installing this module,
try:
reports CJFIELDS/BioPerl-1.007002.tar.gz
Running Build install
make test had returned bad status, won't install without force
When I look at what modules have been installed using...
cpan -l
Bio::DB::HTS 2.11
Bio::DB::HTS::ReadIterator 2.11
Bio::DB::HTS::VCF 2.11
Bio::DB::HTS::Faidx 2.11
Bio::DB::HTS::PileupWrapper 2.11
Bio::DB::HTS::Alignment 2.11
Bio::DB::HTS::ConfigData undef
.
.
.
Bio::DB::HTS::VCF::Iterator 2.11
Bio::DB::HTS::VCF::Row 2.11
I can see that many of the ones I need from the Bio-DB-HTS package are there (assuming that they were one of the succesful installations when isntalling Bio::Perl) but now it prompts the error
Can't locate Bio/SeqFeature/Lite.pm in #INC
However, I never manage to actually get Bio:Seq nor Bio::Perl installed. I do have some perl knowledge but mostly work on python so I am feeling a bit lost of how to proceed.
Extra information
My cpan installs modules to
/usr/local/perl
And I have added the path to my environment variable
export PERL5LIB=/usr/local/perl
Edited information (failed tests & errors) as response to Shawn
#Shawn, Its a long list of errors, test failures and recommended installations. I I can post some examples of the first couple of errors. I am not really sure what to look neither.
Recommended installations
Checking prerequisites...
recommends:
* Algorithm::Munkres is not installed
* Array::Compare is not installed
* Bio::Phylo is not installed
* Convert::Binary::C is not installed
* GD is not installed
* Graph is not installed
* GraphViz is not installed
* HTML::TableExtract is not installed
* Inline::C (0.53) is installed, but we prefer to have 0.67
* PostScript::TextBlock is not installed
* SVG is not installed
* SVG::Graph is not installed
* Set::Scalar is not installed
* Sort::Naturally is not installed
* Spreadsheet::ParseExcel is not installed
* XML::DOM is not installed
* XML::DOM::XPath is not installed
* XML::Parser::PerlSAX is not installed
* XML::SAX::Writer is not installed
* XML::Twig is not installed
* YAML is not installed
Checking optional features...
EntrezGene............disabled
requires:
! Bio::ASN1::EntrezGene is not installed
MySQL Tests...........disabled
requires:
! DBD::mysql is not installed
Pg Tests..............disabled
requires:
! DBD::Pg is not installed
Here is the test summary report. I did not print the entire list of failed tests as it is extremely long. But What I cans see is that /LocalDB/SeqFeature_BDB.t is a part of the majority of the failed tests when looking at the verbose output.
Test Summary Report
-------------------
t/LocalDB/Fasta.t (Wstat: 1024 Tests: 109 Failed: 4)
Failed tests: 73, 91, 95, 101
Non-zero exit status: 4
t/LocalDB/Index/Index.t (Wstat: 20224 Tests: 36 Failed: 6)
Failed tests: 12-17
Non-zero exit status: 79
Parse errors: Bad plan. You planned 73 tests but ran 36.
t/LocalDB/Qual.t (Wstat: 1536 Tests: 56 Failed: 6)
Failed tests: 7-9, 49-50, 52
Non-zero exit status: 6
t/LocalDB/SeqFeature_BDB.t (Wstat: 0 Tests: 38 Failed: 4)
Failed tests: 17-19, 24
Parse errors: Bad plan. You planned 116 tests but ran 38.
t/Perl.t (Wstat: 512 Tests: 47 Failed: 16)
Failed tests: 28, 28, 28, 28-29, 29, 29, 29-30, 30, 30
30-31, 31, 31, 31
Non-zero exit status: 2
Parse errors: Tests out of sequence. Found (24) but expected (26)
Tests out of sequence. Found (25) but expected (27)
Tests out of sequence. Found (26) but expected (28)
Tests out of sequence. Found (26) but expected (29)
Tests out of sequence. Found (27) but expected (30)
Displayed the first 5 of 23 TAP syntax errors.
Re-run prove with the -p option to see them all.
t/RemoteDB/BioFetch.t (Wstat: 0 Tests: 83 Failed: 47)
Failed tests: 20-21, 21-22, 22-23, 23-24, 24-25, 25-26
26-27, 27-28, 28-29, 29-30, 30, 30, 30-31
31, 31, 31-32, 32, 32, 32-33, 33, 33, 33-34
34, 34, 34-35, 35, 35, 35-36, 36, 36, 36
Parse errors: Tests out of sequence. Found (4) but expected (6)
Tests out of sequence. Found (6) but expected (7)
Tests out of sequence. Found (7) but expected (8)
Tests out of sequence. Found (5) but expected (9)
Tests out of sequence. Found (6) but expected (10)
Displayed the first 5 of 79 TAP syntax errors.
Re-run prove with the -p option to see them all.
t/RemoteDB/GenBank.t (Wstat: 0 Tests: 658 Failed: 614)
Failed tests: 10-11, 11, 11-12, 12, 12-13, 13, 13-14
14, 14-15, 15, 15-16, 16, 16-17, 17, 17-18
18, 18-19, 19, 19, 19, 19, 19, 19-20, 20
20, 20, 20, 20, 20-21, 21, 21, 21, 21, 21
21-22, 22, 22, 22, 22, 22, 22-23, 23, 23
Thanks to everyone that helped out, I managed to figure it out in the end. I will explain the process here from beginning to end incase anyone else has the same issue.
The question I posted was to solve how to install Bio::Perl using CPAN as I was having issues with tests failing. Although I had some issues installing Bio-DB-HTS (which I solved before posting) and I will explain how I managed to install that as well in case anyone comes across the same issue.
It seems that Mac users tend to have an issue with the lzma.h header missing. In the case of installing Bio-DB-HTS. I had to modify a line in the Bio-DB-HTS/INSTALL.pl file that checked for the existence of the lzma.h file. See "Installing Bio-DB-HTS on Mac OSx" below for instructions.
Solving installation of Bio::Perl
Essentially I solved it by reinstalling/reconfiguring my CPAN installation. Although I believe the issue in the end was due to some environment variables that I had not set as I chose to manual sort out my CPAN directory structure, I recommend letting CPAN do this for you using the local:lib option as it will set or tell you how to set the environment variables at the end of the installation.
I had only set one of the environment variables below (PERL5LIB) which was probably the reason for my error. NOTE! that the paths you see below are specific for my system.
PATH="/Users/sjamal/perl5/bin${PATH:+:${PATH}}"; export PATH;
PERL5LIB="/Users/sjamal/perl5/lib/perl5${PERL5LIB:+:${PERL5LIB}}"; export PERL5LIB;
PERL_LOCAL_LIB_ROOT="/Users/sjamal/perl5${PERL_LOCAL_LIB_ROOT:+:${PERL_LOCAL_LIB_ROOT}}"; export PERL_LOCAL_LIB_ROOT;
PERL_MB_OPT="--install_base \"/Users/sjamal/perl5\""; export PERL_MB_OPT;
PERL_MM_OPT="INSTALL_BASE=/Users/sjamal/perl5"; export PERL_MM_OPT;
If you have already it configured like me but what to start from a clean slate you will need to remove the CPAN folder created on the user that you installed cpan on.
/Users/<USERNAME>/.cpan
rm -rf /Users/<USERNAME>/.cpan
Now you should be able to run the cpan command as done at the first instance and get prompted with lots of questions of how you want to set up the installation and this is where you will be able to chose 'local:lib' (if you are able to access sudo you can choose the 'sudo' option as well). I installed cpanm based on multiple recommendations and also since it prompts less question apparently and then installed Bio::Perl. Although I should mention that the installation did failed a test and refused to install so I had to run the force command for it to build Bio::Perl.
cpan -i App:cpanminus
cpanm --force Bio::Perl
You should now have Bio::Perl installed.
Installing Bio-DB-HTS on Mac OSx
The lzma library is deprecated on Mac OSx but has been replaced with the XZ library so if you are missing the file as well you can install XZ using brew. If you don't have brew installed you can find how to install it here https://brew.sh/
brew install xz
You will now have a lzma.h header file in the location where XZ was installed using brew, in my case /usr/local/Cellar/xz/5.2.4/include/lzma.h.
git clone https://github.com/Ensembl/Bio-DB-HTS.git
cd Bio-DB-HTS-2.10
vim Bio-DB-HTS/INSTALL.pl
So, I changed the line using vim...
-e '/usr/include/lzma.h' or die <<END;
to
-e '/usr/include/lzma.h' **|| '/usr/local/Cellar/xz/5.2.4/include/lzma.h'** or die <<END;
NOTE! You have to change '/usr/local/Cellar/xz/5.2.4/include/lzma.h' path to where you have the lzma.h in XZ package just installed using brew. However, I want to clarify that this does not solve anything other than telling the script that the file does exist. The Install script won't be able to make use of the file (if that is what it needs to do) as nothing else has been changed in the installation script.
You should now be able to install Bio-DB-HTS by simply running the perl script as below
cd Bio-DB-HTS-2.10
perl INSTALL.pl
Hope that helps!
Sabri

I am starting to use Perl Tk for my UI design in. I created a small code in perl and got the following error

The error is couldn't connect to display ":0" at /usr/lib/perl5/vendor_perl/5.22/x86_64-cygwin-threads/Tk/MainWindow.pm line 53.
MainWindow->new() at ./PerlUI.pl line 6.
The code is:
#!/usr/bin/perl -w
use strict;
use Tk;
my $mw=MainWindow->new;
$mw->geometry("200x100");
$mw->title("Hello World!!");
$mw->Label(-text=>"Hello World")->pack();
$mw->Button(-text=>"Close",-command=>sub{exit})->pack();
MainLoop;
You need to start X first.
perl hello_world_tk.pl
couldn't connect to display ":0" at /usr/lib/perl5/vendor_perl/5.22/i686- cygwin-threads-64int/Tk/MainWindow.pm line 53.
MainWindow->new() at hello_world_tk.pl line 6.
Start X by invoking X, which will open up a new window and then run your script.
X &
Vendor: The Cygwin/X Project
Release: 1.18.4.0
OS: CYGWIN_NT-6.1 EAPB8CA3AA75D7E 2.6.0(0.304/5/3) 2016-08-31 14:27 i686
OS: Windows 7 Service Pack 1 [Windows NT 6.1 build 7601] (Win32)
Package: version 1.18.4-1 built 2016-07-22
winInitializeScreenDefaults - primary monitor w 1280 h 1024
winInitializeScreenDefaults - native DPI x 96 y 96
XWin was started with the following command line:
X
.... more X output
# Now run your script
perl hello_world_tk.pl

IO::Pty perl module cpan solaris installation

OS is SunOS 5.10 Generic_150400-01 sun4v sparc sun4v. Tried to install IO::Pty perl module via cpan. Got an error related to compiler Tried to Set the PATH env variable to /opt/solarisstudio12.3/bin and modified cpan myconfig.pm to have 'make_arg' => q[CC=/opt/solarisstudio12.3/bin/cc] . But still getting the same error.
cpan> install IO::Pty
CPAN: Storable loaded ok
Going to read /home/D99134/cpan/Metadata
Database was generated on Sat, 09 Nov 2013 06:53:04 GMT
Running install for module IO::Pty
Running make for T/TO/TODDR/IO-Tty-1.10.tar.gz
CPAN: Digest::MD5 loaded ok
CPAN: Compress::Zlib loaded ok
Checksum for /home/D99134/cpan/sources/authors/id/T/TO/TODDR/IO-Tty-1.10.tar.gz ok
Scanning cache /home/D99134/cpan/build for sizes
x IO-Tty-1.10, 0 bytes, 0 tape blocks
x IO-Tty-1.10/ChangeLog, 8192 bytes, 16 tape blocks
x IO-Tty-1.10/MANIFEST, 151 bytes, 1 tape blocks
x IO-Tty-1.10/META.yml, 612 bytes, 2 tape blocks
x IO-Tty-1.10/Makefile.PL, 13360 bytes, 27 tape blocks
x IO-Tty-1.10/Pty.pm, 8709 bytes, 18 tape blocks
x IO-Tty-1.10/README, 1686 bytes, 4 tape blocks
x IO-Tty-1.10/Tty.pm, 7526 bytes, 15 tape blocks
x IO-Tty-1.10/Tty.xs, 22244 bytes, 44 tape blocks
x IO-Tty-1.10/t, 0 bytes, 0 tape blocks
x IO-Tty-1.10/t/test.t, 7306 bytes, 15 tape blocks
x IO-Tty-1.10/try, 2880 bytes, 6 tape blocks
Removing previously used /home/D99134/cpan/build/IO-Tty-1.10
CPAN.pm: Going to build T/TO/TODDR/IO-Tty-1.10.tar.gz
Now let's see what we can find out about your system
(logfiles of failing tests are available in the conf/ dir)...
ERROR: cannot run the configured compiler '/opt/SUNWspro/bin/cc'
(see conf/compilerok.log). Suggestions:
1) The complier '/opt/SUNWspro/bin/cc' is not in your PATH. Add it
to the PATH and try again. OR
2) The compiler isn't installed on your system. Install it. OR
3) You only have a different compiler installed (e.g. 'gcc').
Either fix the compiler config in the perl Config.pm
or install a perl that was built with the right compiler
(you could build perl yourself with the available compiler).
Note: this is a system-administration issue, please ask your local
admin for help. Thank you.
make: Fatal error: No arguments to build
/usr/ccs/bin/make CC=/opt/solarisstudio12.3/bin/cc -- NOT OK
Running make test
Can't test without successful make
Running make install
make had returned bad status, install seems impossible
You have to follow the third suggestion (fixing perl's Config.pm). This is dangerous, but there's a CPAN module which allows you to do Config.pm changes on the fly: ExtUtils::FakeConfig. Just follow the instructions in the documentation.
Here's another article about editing Config.pm on perlmonks: http://www.perlmonks.org/?node_id=570684

Installing XML::DOM module fails

I couldn't find any solution for two weeks.!!!!
I try to install CPAN Modules using the cpan.exe.
When I try to install a module with "install XML::DOM" fails stating dmake.exe is NOT OK,
here is my error:
Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. All rights reserved.
C:\Users\ehsan\Documents>cpan
Set up gcc environment - gcc.exe (release with patches / build 20130526 by st
berryperl.com) 4.7.3
There seems to be running another CPAN process (pid 5932). Contacting...
Other job not responding. Shall I overwrite the lockfile 'C:\Perl\cpan\.lock'
Y/n) [y] y
cpan shell -- CPAN exploration and modules installation (v1.9800)
Enter 'h' for help.
cpan> install XML::DOM
Reading 'C:\Perl\cpan\Metadata'
Database was generated on Thu, 24 Oct 2013 11:09:28 GMT
Running install for module 'XML::DOM'
Running make for T/TJ/TJMATHER/XML-DOM-1.44.tar.gz
Checksum for C:\Perl\cpan\sources\authors\id\T\TJ\TJMATHER\XML-DOM-1.44.tar.g
k
Scanning cache C:\Perl/cpan/build for sizes
............................................................................D
XML-DOM-1.44/
XML-DOM-1.44/lib/
XML-DOM-1.44/lib/XML/
XML-DOM-1.44/lib/XML/DOM/
XML-DOM-1.44/lib/XML/DOM/DocumentType.pod
XML-DOM-1.44/lib/XML/DOM/DocumentFragment.pod
XML-DOM-1.44/lib/XML/DOM/AttlistDecl.pod
XML-DOM-1.44/lib/XML/DOM/Notation.pod
XML-DOM-1.44/lib/XML/DOM/Attr.pod
XML-DOM-1.44/lib/XML/DOM/ProcessingInstruction.pod
XML-DOM-1.44/lib/XML/DOM/Entity.pod
XML-DOM-1.44/lib/XML/DOM/Document.pod
XML-DOM-1.44/lib/XML/DOM/Parser.pod
XML-DOM-1.44/lib/XML/DOM/NodeList.pm
XML-DOM-1.44/lib/XML/DOM/Node.pod
XML-DOM-1.44/lib/XML/DOM/ElementDecl.pod
XML-DOM-1.44/lib/XML/DOM/EntityReference.pod
XML-DOM-1.44/lib/XML/DOM/NodeList.pod
XML-DOM-1.44/lib/XML/DOM/CharacterData.pod
XML-DOM-1.44/lib/XML/DOM/DOMException.pm
XML-DOM-1.44/lib/XML/DOM/PerlSAX.pm
XML-DOM-1.44/lib/XML/DOM/NamedNodeMap.pm
XML-DOM-1.44/lib/XML/DOM/NamedNodeMap.pod
XML-DOM-1.44/lib/XML/DOM/Comment.pod
XML-DOM-1.44/lib/XML/DOM/Element.pod
XML-DOM-1.44/lib/XML/DOM/XMLDecl.pod
XML-DOM-1.44/lib/XML/DOM/CDATASection.pod
XML-DOM-1.44/lib/XML/DOM/DOMImplementation.pod
XML-DOM-1.44/lib/XML/DOM/Text.pod
XML-DOM-1.44/lib/XML/DOM/AttDef.pod
XML-DOM-1.44/lib/XML/DOM.pm
XML-DOM-1.44/lib/XML/Handler/
XML-DOM-1.44/lib/XML/Handler/BuildDOM.pm
XML-DOM-1.44/t/
XML-DOM-1.44/t/dom_jp_minus.t
XML-DOM-1.44/t/dom_noexpand.t
XML-DOM-1.44/t/dom_template.t
XML-DOM-1.44/t/dom_jp_cdata.t
XML-DOM-1.44/t/dom_jp_modify.t
XML-DOM-1.44/t/dom_text.t
XML-DOM-1.44/t/dom_cdata.t
XML-DOM-1.44/t/dom_jp_attr.t
XML-DOM-1.44/t/dom_extent.t
XML-DOM-1.44/t/dom_minus.t
XML-DOM-1.44/t/dom_attr.t
XML-DOM-1.44/t/dom_encode.t
XML-DOM-1.44/t/dom_jp_example.t
XML-DOM-1.44/t/dom_extent.ent
XML-DOM-1.44/t/dom_jp_print.t
XML-DOM-1.44/t/dom_documenttype.t
XML-DOM-1.44/t/dom_extent.dtd
XML-DOM-1.44/t/dom_jp_astress.t
XML-DOM-1.44/t/build_dom.t
XML-DOM-1.44/t/dom_print.t
XML-DOM-1.44/t/dom_astress.t
XML-DOM-1.44/t/dom_modify.t
XML-DOM-1.44/t/dom_example.t
XML-DOM-1.44/FAQ.xml
XML-DOM-1.44/Changes
XML-DOM-1.44/MANIFEST
XML-DOM-1.44/META.yml
XML-DOM-1.44/CmpDOM.pm
XML-DOM-1.44/samples/
XML-DOM-1.44/samples/minutes.xml
XML-DOM-1.44/samples/REC-xml-19980210.xml
XML-DOM-1.44/BUGS
XML-DOM-1.44/CheckAncestors.pm
XML-DOM-1.44/XML-Parser-2.31.patch
XML-DOM-1.44/Makefile.PL
XML-DOM-1.44/README
CPAN.pm: Building T/TJ/TJMATHER/XML-DOM-1.44.tar.gz
Set up gcc environment - gcc.exe (release with patches / build 20130526 by st
berryperl.com) 4.7.3
Checking if your kit is complete...
Looks good
Warning: prerequisite XML::Parser::PerlSAX 0.07 not found.
Warning: prerequisite XML::RegExp 0 not found.
Writing Makefile for XML-DOM
Writing MYMETA.yml and MYMETA.json
---- Unsatisfied dependencies detected during ----
---- TJMATHER/XML-DOM-1.44.tar.gz ----
XML::Parser::PerlSAX [requires]
XML::RegExp [requires]
Running make test
Delayed until after prerequisites
Running make install
Delayed until after prerequisites
Running install for module 'XML::Parser::PerlSAX'
Running make for K/KM/KMACLEOD/libxml-perl-0.08.tar.gz
Checksum for C:\Perl\cpan\sources\authors\id\K\KM\KMACLEOD\libxml-perl-0.08.t
gz ok
libxml-perl-0.08/
libxml-perl-0.08/lib/
libxml-perl-0.08/lib/XML/
libxml-perl-0.08/lib/XML/Handler/
libxml-perl-0.08/lib/XML/Handler/Subs.pm
libxml-perl-0.08/lib/XML/Handler/CanonXMLWriter.pm
libxml-perl-0.08/lib/XML/Handler/Sample.pm
libxml-perl-0.08/lib/XML/Handler/XMLWriter.pm
libxml-perl-0.08/lib/XML/PatAct/
libxml-perl-0.08/lib/XML/PatAct/ActionTempl.pm
libxml-perl-0.08/lib/XML/PatAct/PatternTempl.pm
libxml-perl-0.08/lib/XML/PatAct/Amsterdam.pm
libxml-perl-0.08/lib/XML/PatAct/MatchName.pm
libxml-perl-0.08/lib/XML/PatAct/ToObjects.pm
libxml-perl-0.08/lib/XML/SAX2Perl.pm
libxml-perl-0.08/lib/XML/Perl2SAX.pm
libxml-perl-0.08/lib/XML/ESISParser.pm
libxml-perl-0.08/lib/XML/Parser/
libxml-perl-0.08/lib/XML/Parser/PerlSAX.pm
libxml-perl-0.08/lib/Data/
libxml-perl-0.08/lib/Data/Grove/
libxml-perl-0.08/lib/Data/Grove/Parent.pm
libxml-perl-0.08/lib/Data/Grove/Visitor.pm
libxml-perl-0.08/lib/Data/Grove.pm
libxml-perl-0.08/doc/
libxml-perl-0.08/doc/CreatingPatActModules.pod
libxml-perl-0.08/doc/interface-style.pod
libxml-perl-0.08/doc/modules.xml
libxml-perl-0.08/doc/sax-2.0-adv.html
libxml-perl-0.08/doc/UsingPatActModules.pod
libxml-perl-0.08/doc/PerlSAX.pod
libxml-perl-0.08/doc/mirror.sh
libxml-perl-0.08/doc/sax-2.0.html
libxml-perl-0.08/doc/UsingPerlSAX.pod
libxml-perl-0.08/doc/index.html
libxml-perl-0.08/Changes
libxml-perl-0.08/MANIFEST
libxml-perl-0.08/examples/
libxml-perl-0.08/examples/schema.xml
libxml-perl-0.08/examples/MyHandler.pm
libxml-perl-0.08/examples/myhandler.xml
libxml-perl-0.08/examples/myhandler.pl
libxml-perl-0.08/examples/schema.pl
libxml-perl-0.08/examples/perlsax-test.pl
libxml-perl-0.08/examples/esis-test.pl
libxml-perl-0.08/t/
libxml-perl-0.08/t/schema.t
libxml-perl-0.08/t/stream.t
libxml-perl-0.08/t/xp_sax.t
libxml-perl-0.08/t/subs.t
libxml-perl-0.08/t/canon_xml_writer.t
libxml-perl-0.08/t/amsterdam.t
libxml-perl-0.08/ChangeLog
libxml-perl-0.08/libxml-perl.spec
libxml-perl-0.08/libxml-perl-0.08.spec
libxml-perl-0.08/Makefile.PL
libxml-perl-0.08/README
CPAN.pm: Building K/KM/KMACLEOD/libxml-perl-0.08.tar.gz
Set up gcc environment - gcc.exe (release with patches / build 20130526 by st
berryperl.com) 4.7.3
Checking if your kit is complete...
Looks good
Writing Makefile for libxml-perl
Writing MYMETA.yml and MYMETA.json
CreateProcess failed (2).
dmake.exe: Error executing 'C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\mksnt\sh.
-c C:\Perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\lib': No such
e or directory
dmake.exe: Error code -1, while making 'blib\lib\.exists'
KMACLEOD/libxml-perl-0.08.tar.gz
C:\STRAWB~1\c\bin\dmake.exe -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Running install for module 'XML::RegExp'
Running make for T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz
Checksum for C:\Perl\cpan\sources\authors\id\T\TJ\TJMATHER\XML-RegExp-0.04.ta
z ok
XML-RegExp-0.04/
XML-RegExp-0.04/META.yml
XML-RegExp-0.04/test.pl
XML-RegExp-0.04/README
XML-RegExp-0.04/Changes
XML-RegExp-0.04/MANIFEST
XML-RegExp-0.04/lib/
XML-RegExp-0.04/lib/XML/
XML-RegExp-0.04/lib/XML/RegExp.pm
XML-RegExp-0.04/Makefile.PL
CPAN.pm: Building T/TJ/TJMATHER/XML-RegExp-0.04.tar.gz
Set up gcc environment - gcc.exe (release with patches / build 20130526 by st
berryperl.com) 4.7.3
Checking if your kit is complete...
Looks good
Writing Makefile for XML::RegExp
Writing MYMETA.yml and MYMETA.json
CreateProcess failed (2).
dmake.exe: Error executing 'C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\mksnt\sh.
-c C:\Perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\lib\XML': No s
file or directory
dmake.exe: Error code -1, while making 'blib\lib\XML\.exists'
TJMATHER/XML-RegExp-0.04.tar.gz
C:\STRAWB~1\c\bin\dmake.exe -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Running make for T/TJ/TJMATHER/XML-DOM-1.44.tar.gz
Has already been unwrapped into directory C:\Perl\cpan\build\XML-DOM-1.44-P
El
CPAN.pm: Building T/TJ/TJMATHER/XML-DOM-1.44.tar.gz
Warning: Prerequisite 'XML::Parser::PerlSAX => 0.07' for 'TJMATHER/XML-DOM-1.
tar.gz' failed when processing 'KMACLEOD/libxml-perl-0.08.tar.gz' with 'make
NO'. Continuing, but chances to succeed are limited.
Warning: Prerequisite 'XML::RegExp => 0' for 'TJMATHER/XML-DOM-1.44.tar.gz' f
ed when processing 'TJMATHER/XML-RegExp-0.04.tar.gz' with 'make => NO'. Conti
ng, but chances to succeed are limited.
CreateProcess failed (2).
dmake.exe: Error executing 'C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\mksnt\sh.
-c C:\Perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\lib': No such
e or directory
dmake.exe: Error code -1, while making 'blib\lib\.exists'
TJMATHER/XML-DOM-1.44.tar.gz
C:\STRAWB~1\c\bin\dmake.exe -- NOT OK
Running make test
Can't test without successful make
Running make install
Make had returned bad status, install seems impossible
Failed during this command:
KMACLEOD/libxml-perl-0.08.tar.gz : make NO
TJMATHER/XML-DOM-1.44.tar.gz : make NO
TJMATHER/XML-RegExp-0.04.tar.gz : make NO
i asked this question in Perlmonks and i got this answer :
"Looks like you are (or have been) using MKS, which can confuse things such as which shell dmake invokes and so on. I suggest you remove it (the path to MKS) from your system PATH variable (example). Once you've done this start a new command prompt and retry the installation"
what should i do?
I see a problem here:
dmake.exe: Error executing 'C:\PROGRA~1\RATIONAL\RATION~1\NUTCROOT\mksnt\sh.
-c C:\Perl\bin\perl.exe -MExtUtils::Command -e mkpath -- blib\lib': No such
e or directory
dmake.exe: Error code -1, while making 'blib\lib\.exists'
TJMATHER/XML-DOM-1.44.tar.gz
C:\STRAWB~1\c\bin\dmake.exe -- NOT OK
Your dmake call comes from a Strawberry Perl installation, and it invokes what looks like ActivePerl. Down that PATH lies madness. If you want to use CPAN with Strawberry Perl, then remove the ActivePerl directories from your PATH.
Specifically, try this:
set PATH C:\STRAWB~1\perl\bin;C:\STRAWB~1\c\bin
cpan XML::DOM
Your key is probably here:
Warning: Prerequisite 'XML::Parser::PerlSAX => 0.07' for 'TJMATHER/XML-DOM-1.
tar.gz' failed when processing 'KMACLEOD/libxml-perl-0.08.tar.gz' with 'make
NO'. Continuing, but chances to succeed are limited.
Warning: Prerequisite 'XML::RegExp => 0' for 'TJMATHER/XML-DOM-1.44.tar.gz' f
ed when processing 'TJMATHER/XML-RegExp-0.04.tar.gz' with 'make => NO'. Conti
ng, but chances to succeed are limited.
You need to have XML::Parser::PerlSAX and XML::RegExp installed first.

CPAN Perl modules installer not finding tar file

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 ?
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.
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 :-)
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
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.
Shot in the blue: partition is full. Delete some files.