Beefy Boxes and Bandwidth Generously Provided by pair Networks
P is for Practical

Re^2: perlbrew/cpanm on 64 bit Ubuntu

by emgrasso (Novice)
on Aug 04, 2013 at 03:54 UTC ( [id://1047763] : note . print w/replies, xml ) Need Help??

in reply to Re: perlbrew/cpanm on 64 bit Ubuntu
in thread perlbrew/cpanm on 64 bit Ubuntu

Add them WHERE in the config?

I have installed the 32bit libraries and multilib compilers, and it turns out that neither the 32bit nor the 64bit libraries end up in the main /usr/lib directory that is mentioned in Makefile.PL.

In the perlbrew environment, running
cpanm XML::LibXML

still reports:

Configuring XML-LibXML-2.0019 ... N/A ! Configure failed for XML-LibXML-2.0019. See /home/emgrasso/.cpanm/wo +rk/1375587018.8608/build.log for details
and /home/emgrasso/.cpanm/work/1375587018.8608/build.log says:
running xml2-config...ok (2.7.8) Checking for ability to link against Checking for ability to link against libxml2...libxml2, zlib, and/or t +he Math library (-lm) have not been found. Try setting LIBS and INC values on the command line Or get libxml2 from If you install via RPMs, make sure you also install the -devel RPMs, as this is where the headers (.h files) are.
I don't think it is talking about the cpanm command line.

The perlbrew environments don't seem to contain any CPAN directories for config files where I could set o conf makepl_arg. (Does cpanm pay attention to those? If so, what format would I need to use so Makefile.PL would search the existing paths at well as the special 32 or 64 bit paths?)

Replies are listed 'Best First'.
Re^3: perlbrew/cpanm on 64 bit Ubuntu
by syphilis (Archbishop) on Aug 04, 2013 at 05:44 UTC
    I don't think it is talking about the cpanm command line

    That's right - it's talking about the perl Makefile.PL command line .... which is the command you would run if you wanted to build XML::LibXML "manually".
    In that case you would cd to the top-level directory in the XML-LibXML source and run something like:
    perl Makefile.PL INC="-I/usr/include/x86_64-linux-gnu" LIBS="-L/usr/li +b/x86_64-linux-gnu -lxml2 -lz -lm"
    You would then follow that with make test then (assuming make test went satisfactorily) make install

    I don't know how you'd incorporate that command line requirement into the automated cpanm procedure. (I'd just do it "manually".)

    Alternatively, adding /usr/include/x86_64-linux-gnu to the CPATH environment variable and adding /usr/lib/x86_64-linux-gnu to the LIBRARY_PATH environment variable might also work - at least if you're using a gcc compiler:
    export CPATH=/usr/include/x86_64-linux-gnu:$CPATH export LIBRARY_PATH=/usr/lib/x86_64-linux-gnu:$LIBRARY_PATH
      cpanm XML::LibXML --configure-args 'INC="-I/usr/include/x86_64-linux-g +nu" LIBS="-L/usr/lib/x86_64-linux-gnu -lxml2 -lz -lm" '
      tells cpanm to pass those parameters to perl Makefile.PL of XML::LibXML but not to its prereqs.