Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Re: ERROR in XML::LibXML installation

by SilasTheMonk (Chaplain)
on Jul 03, 2010 at 12:14 UTC ( [id://847897]=note: print w/replies, xml ) Need Help??


in reply to ERROR in XML::LibXML installation

This hits me just about every time I install XML::LibXML. You need to have the underlying C libraries in place and sadly CPAN has no way of specifying such dependencies. I cannot speak for non-debian systems, but this really messes up what one would hope is a smooth install. I'm thinking of trying to use the debian packaging system much more as that can express these sort of dependencies. I think in windows the perl distributions come with their own packaging systems, but then you have a much more limited set of up-to-date modules and I am not sure how well they handle external dependencies.

Replies are listed 'Best First'.
Re^2: ERROR in XML::LibXML installation
by ikegami (Patriarch) on Jul 03, 2010 at 13:27 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.

    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
      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.

      > 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

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://847897]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-04-20 10:30 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found