in reply to perlbrew/cpanm on 64 bit Ubuntu

Paths are paths, just add them to the config, although I doubt you can mix 32/64bit libraries in a single executable (its either all 32bit or all 64bit, no mixing)

Re: cpanm --sudo installs to /root/perl5 instead of /usr, http://perldoc.perl.org/ExtUtils/MakeMaker.html#LIBS, C_INCLUDE_PATH/LIBRARY_PATH... Re^7: Install LWP::Protocol::https

Replies are listed 'Best First'.
Re^2: perlbrew/cpanm on 64 bit Ubuntu
by emgrasso (Novice) on Aug 04, 2013 at 03:54 UTC
    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 xml2...no 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 http://xmlsoft.org/ 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?)
      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
      Cheers,
      Rob
        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.