in reply to (tye)Re: Stopping CPAN from upgrading Perl
in thread Stopping CPAN from upgrading Perl

My personal memory goes as follows.

Perl 5.005_03 released with (IIRC) version 1.48. This version will upgrade perl if it sees something that depends on Perl 5.6.x, but that fact not realized because Perl 5.6.x doesn't exist.

Perl 5.6.0 released.

Not too long thereafter while trying to install something I find that it is upgrading perl on me. I send a bug report. Andreas sends me back a "sorry" and a patch that will die horrible flaming death instead of doing the upgrade. I wasn't the first to complain, that honor goes to Joseph Hall.

A bit after that I am installing some new machines, and trying to load a ton of modules from the old ones. The "die flaming death" aspect of things causes me grief so I convinced Adreas that he wants to make it skip that upgrade and anything which depends on it, but continue installing other things. (I might have sent him a patch that did that, I don't think so though.)

Fast-forward to the present. Anyone who has a machine with an install of 5.005_03 who has not upgraded their CPAN from the default install, upon requiring any module which requires Perl 5.6.x, will upgrade Perl. Painfully. This problem is cropping up and will continue to crop up because more and more modules over time are requiring Perl 5.6.x.

And so a plea to any module authors. Please think very, very carefully before making your module require something that involves 5.6.x. When you do that you are adding to this problem. Furthermore if you have a module which is used by other modules, and you introduce that dependency, then you have made all of those other modules also cause this problem. Please consider carefully the convenience to yourself versus the inconvenience of causing people to have Perl upgrade itself on them.

Yes, the bug is in a version of a module released with Perl 5.005_03. But that version of Perl is still widely used. And it will, despite its best attempts to uninstall itself, continue to be for some time to come.

  • Comment on Re (tilly) 3: Stopping CPAN from upgrading Perl

Replies are listed 'Best First'.
(tye)Re2: Stopping CPAN from upgrading Perl
by tye (Sage) on Jul 19, 2001 at 06:32 UTC

    Thanks for the added info. Some clarification...

    The original complaint in this thread is from someone who has Perl 5.6.0 not 5.005_03. So the patch came after 5.6.0 and it is 5.6.1 that will come with a fixed CPAN.pm?

    I think 5.6.0 existed for a very long time during much of which I ignored its existance and that is a major problem with my recall of the timeline.

    Also, I recall another reason that CPAN.pm would decide to upgrade Perl was that the newest version of the module being requested is the one shipped with Perl (vs. that the module listed Perl vX.Y.Z as a dependancy). That is the piece that I'm worried was rebroken.

    So I'm still a little curious if this has really been fixed. So it would really be nice if the original noder would let us know if upgrading CPAN fixed the problem. I think I'll /msg them... (:

            - tye (but my friends call me "Tye")
      I just installed 5.005_03 for testing. It came with an earlier version of CPAN, of course. I tried to update a few modules, and they kept trying to install Perl 5.6.1. Then I updated to v1.59, and am now getting messages like:

      cpan> install Cwd Running install for module Cwd Running make for G/GS/GSAR/perl-5.6.0.tar.gz The most recent version "2.02" of the module "Cwd" comes with the current version of perl (5.6.0). I'll build that only if you ask for something like force install Cwd or install G/GS/GSAR/perl-5.6.0.tar.gz
      Yes. The need for CPAN to not upgrade was realized after 5.6.0 was released, so both 5.005_03 and 5.6.0 are buggy.

      But 5.6.1 should have the correct version.

      To see if you do you can try "perldoc -m CPAN" and look for the word, "isaperl". If you find it, then you have the test.

      And in answer to another person's note, the correct way to handle it is to first upgrade just CPAN (which does not have any forward dependencies but does have the fix) and not Bundle::CPAN (which includes packages with forward dependencies). Once that is upgraded, you can upgrade more packages at will.

      Just to add a little more.. What I expierenced going from 5.6 to 5.6.1 was that when I ran CPAN, I was prompted to upgrade CPAN.pm. But, the instructions read that you can do this by upgrading Bundle::CPAN. Now upon upgrading Bundle::CPAN, I come back to see that it's installing 5.6.1. I mentioned this in the CB and I belive it was Tilly that said that just upgrading CPAN.pm would not do it, but upgrading the Bundle would. He also mentioned that there was a previous problem with just CPAN.pm. Anyway, it's probably nbot worth much, but that was my expierence.