Hrunting has asked for the wisdom of the Perl Monks concerning the following question:

The other day, I was installing a module via CPAN's shell interface when the notice came up that there was a new version of CPAN available (1.59). So I was decided to install it. When I tried to install it, it checked my dependencies, and noticed that a few modules were out of date with the most recent versions on CPAN, so it went ahead to upgrade them.

One of these modules (I fail to remember the exact one, something IO based) is found in the main perl distribution, so CPAN tries to haul down the latest version of that. The problem is, the latest version is perl-5.6.1-TRIAL1, which is in Gurusamy's directory, but isn't listed as a stable (or even a development release) in the src directories.

So how can I tell CPAN to only update specific modules (like perl) if they're stable or "absolutely necessary"? I don't particularly want to have it ask me every time it needs to update a dependency, but I also want to make sure that CPAN doesn't try to upgrade my perl distribution to the latest non-stable version.

Replies are listed 'Best First'.
Re: What is CPAN doing?
by Hrunting (Pilgrim) on Dec 21, 2000 at 23:56 UTC
    After doing some digging, I think the whole thing is a misnaming issue on the part of Gurusamy. According to the CPAN module, if you put an underscore in the version numbering of the file, it gets treated as an unstable version and will be disregarded when checking for up-to-date versions.

    I e-mailed gsar about it, and I'll see what he says. That CPAN documentation may be out of date.

    Interesting little tidbit from gsar's README on CPAN:

    Anything that doesn't figure in the list above is either not related to Perl, or hysterical junk that you should probably ignore.
    perl-5.6.1-TRIAL1.tar.gz isn't listed in his list (last updated 17-DEC-2000). Go figure.
Re: What is CPAN doing?
by extremely (Priest) on Dec 21, 2000 at 23:44 UTC
    Er? That is odd. Do you have 5.005 or 5.6 installed? Just so you know, look in your .cpan directory for Bundle/CPAN.pm and look at the =head1 CONTENTS section. You should see a list of modules like
    File::Spec MD5 Compress::Zlib Archive::Tar Bundle::libnet Term::ReadKey Term::ReadLine::Perl # sorry, I'm discriminating the ::Gnu module CPAN::WAIT CPAN

    and in the Bundle::libnet you'd see:

    Data::Dumper - For Net::Config Net::Telnet - For Net::Telnet by Jay Rogers Net::Cmd - for libbet itself

    Now I'm not sure but it wouldn't suprise me that libnet calls a lot of IO modules. Of course, none of this does you the slightest bit of good since I have no idea how to get CPAN to discriminate. For the near future you may wish to: "get Bundle::..." and shell out to look at the list, then "install Module Module Module" to avoid it. Just do em in the same order unless you enjoy doing them multiple times. That's all I gots...

    --
    $you = new YOU;
    honk() if $you->love(perl)