in reply to Re: ERROR in XML::LibXML installation
in thread ERROR in XML::LibXML installation

sadly CPAN has no way of specifying such dependencies

What you can do is reflect the C library with a Perl distribution (e.g. Alien-wxWidgets). During installation, the distro checks if the necessary C library is installed. If not, the distro either fails to install itself or it installs the C library.

I think in windows the perl distributions come with their own packaging systems

I don't think there's anything Windows-specific about PPM. It's just that there are only repositories for ActivePerl builds. (I think they usually also work with Strawberry, and I think a change to 5.12 makes is so they always work.)

but then you have a much more limited set of up-to-date modules

There's an amazing list of up to date modules. Someone's probably running an automated tool. But it's probably not the same story for modules with external dependencies such as XML::LibXML.

I am not sure how well they handle external dependencies.

They incorporate external dependencies. XML::LibXML is now available from AS's repo for 5.12:

>ppm install XML::LibXML Downloading ActiveState Package Repository packlist...done Updating ActiveState Package Repository database...done Downloading XML-LibXML-1.70...done Downloading XML-SAX-0.96...done Downloading XML-NamespaceSupport-1.11...done Unpacking XML-LibXML-1.70...done Unpacking XML-SAX-0.96...done Unpacking XML-NamespaceSupport-1.11...done Generating HTML for XML-LibXML-1.70...done Generating HTML for XML-SAX-0.96...done Generating HTML for XML-NamespaceSupport-1.11...done Updating files in site area...done 110 files installed

Replies are listed 'Best First'.
Re^3: ERROR in XML::LibXML installation
by syphilis (Archbishop) on Jul 04, 2010 at 13:02 UTC
    What you can do is reflect the C library with a Perl distribution (e.g. Alien-wxWidgets). During installation, the distro checks if the necessary C library is installed. If not, the distro either fails to install itself or it installs the C library.

    I don't think what I'm about to ask is related to the original post in this thread, but I'd be interested to hear any thoughts, anyway.

    Are there Alien::* options that enable the user to specify whether static libs or shared libs are to be built ? (If not, should there be ?)
    Some libraries offer other options as well - eg the gmp library provides options regarding the allocation of memory. Does Alien::* cater for these additional options ? (If not, should it ?)

    Cheers,
    Rob
      Just like for any other distro, the installer can fetch config information from the environment or terminal.
Re^3: ERROR in XML::LibXML installation
by SilasTheMonk (Chaplain) on Jul 06, 2010 at 08:43 UTC

    > sadly CPAN has no way of specifying such dependencies

    What you can do is reflect the C library with a Perl distribution (e.g. Alien-wxWidgets). During installation, the distro checks if the necessary C library is installed. If not, the distro either fails to install itself or it installs the C library.

    Thanks. I will remember that when I write a perl module that depends on a C library. However that is not really the issue. XML::LibXML does implement such checks in as much as the install fails if the library. The problem is that CPAN does not (and could not be expected to) be able to reason: "Ah! libxml is missing and I am about to install XML::LibXML. I'd better install libxml first." So in conclusion I would say that the less production critical machine is, the less one should be using CPAN on it and the more one should be using the packaging system.

      The problem is that CPAN does not (and could not be expected to) be able to reason: "Ah! libxml is missing and I am about to install XML::LibXML. I'd better install libxml first."

      What you can do is reflect the C library with a Perl distribution (e.g. Alien-wxWidgets). During installation, the distro checks if the necessary C library is installed. If not, the distro either fails to install itself or it installs the C library.

      XML::LibXML -> depends on Alien::LibXML (i.e. libxml2) Alien::LibXML -> Installs libxml2 as part of its installation