Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?
 
PerlMonks  

Re: Solaris, Perl 5.8 and use 5.005

by dragonchild (Archbishop)
on Mar 07, 2005 at 13:55 UTC ( #437207=note: print w/replies, xml ) Need Help??


in reply to Solaris, Perl 5.8 and use 5.005

First, before you do anything, you have to justify why you want to upgrade. There are some reasons that are irrefutable. These are the "We want to use feature XYZ and it's only in version 5.x.x". Features like that would include:
  • Near-transparent handling of Unicode (5.8)
  • A threading model worth having (5.8)
  • Granular warnings (5.6)
  • A module from CPAN that only works on version 123

Additionally, there have been hundreds of security and bug fixes since 5.005_00 was released, all of which are in 5.8.6 (the latest version thus far).

A major reason --NOT-- to upgrade is that you have to reinstall EVERY SINGLE module, and all their dependencies, and all their dependencies, etc. The 5.8 series is not binary compatiable with pre-5.8 installs. This reason alone is sometimes justification enough to avoid an upgrade.

Additionally, if it ain't broke, why you trying to fix it? It's not like 5.005 is unstable through aging or has gained cruft in the time since it was released ...

Now, to answer your specific questions.

  1. You can't upgrade to 5.8 without an upgrade of the OS.

    This is flat wrong. I have run 5.8 on operating systems that were released before Perl5 was even a twinkling in Larry's eye. The easiest way to disprove it is to build your own personal copy of Perl. To do this, you download stable.tar.gz from http://www.cpan.org and use ./configure PREFIX=~ when you build it. The build will take roughly a workday and hammer the server, so I suggest you kick this off overnight after you've done the configure.

  2. Company policy is to have only one version of the perl binary

    Company policy is unchangeable, at least from the level it seems like you are. Multiple Perl installations are easy - just call them different things or put them in different places. They will install their libraries in directory structures that include their version number, so there's no clobbering.

  3. Existing apps will break

    Yes and no. You will have to reinstall the entire module base, but that won't break existing apps. Unless, of course, you install incompatible versions of certain modules, like Class::MethodMaker whose API changed between v1 and v2. Or, if you depended on a bug in a prior version of a module and that bug has gone away.

    The easiest way to test if this will happen is to install 5.8.6 in your home directory and try your applications with it. If they work, that will give management a bunch of warm fuzzies. If they break horribly, that allows you to not look stupid when the migration is approved and you can't make it happen. (That's because you were sick on the day of the meeting and shut your hole.)

Being right, does not endow the right to be rude; politeness costs nothing.
Being unknowing, is not the same as being stupid.
Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

Replies are listed 'Best First'.
Re^2: Solaris, Perl 5.8 and use 5.005
by ZlR (Chaplain) on Mar 07, 2005 at 14:28 UTC
    Hello dragonchild , and thanks for your answer .

    Additionally, if it ain't broke, why you trying to fix it?

    A new app will be developped on this server . We don't want to start developpement with 5.0 .

    You will have to reinstall the entire module base,

    Is it not possible to have a second perl binary, with a different she bang and a different default @INC ? If i manage to have two perl binary (you never know) then i also want to have two different module librairies. This way existing application does not have to migrate, new application is 5.8 .

    In the case they insist to have only one binary, i understant we should check code and tree for modules and reinstall them .
    This meeting is a first, no one's in charge of nothing, and i will certainly listen to what the conservatives have to say. But if it starts with "we need to re-install solaris", then i don't know .

      Yes it is entirely possible to have a different Perl installation - you simply use a different PREFIX when you run Configure. IMO this is preferable to replacing an existing perl if you don't want to have to test and possibly fix a whole bunch of existing code. And it is definitely what you want to do if you have a preinstalled Perl that came with your OS (though I don't think Solaris 6 did.)

      /J\

      I'm willing to go out on a limb and say unequivocally "You will never need to reinstall Solaris to install Perl 5.x.x". If they persist, ask them for their proof and bring it back to us. I feel very comfortable that we can provide answers that will satisfy.

      Being right, does not endow the right to be rude; politeness costs nothing.
      Being unknowing, is not the same as being stupid.
      Expressing a contrary opinion, whether to the individual or the group, is more often a sign of deeper thought than of cantankerous belligerence.
      Do not mistake your goals as the only goals; your opinion as the only opinion; your confidence as correctness. Saying you know better is not the same as explaining you know better.

      As gellyfish said, you can have multiple perls installed simultaneously:

      $ perl -v This is perl, v5.8.0 built for i386-linux-thread-multi (with 1 registered patch, see perl -V for more detail) Copyright 1987-2002, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using `man perl' or `perldoc perl'. If you have access to + the Internet, point your browser at http://www.perl.com/, the Perl Home Pa +ge. $ perl5.8 -v This is perl, v5.8.6 built for i686-linux Copyright 1987-2004, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using `man perl' or `perldoc perl'. If you have access to + the Internet, point your browser at http://www.perl.com/, the Perl Home Pa +ge. $ p58 # change environment $ perl5.8.3 -v This is perl, v5.8.3 built for i686-linux Copyright 1987-2003, Larry Wall Perl may be copied only under the terms of either the Artistic License + or the GNU General Public License, which may be found in the Perl 5 source ki +t. Complete documentation for Perl, including FAQ lists, should be found +on this system using `man perl' or `perldoc perl'. If you have access to + the Internet, point your browser at http://www.perl.com/, the Perl Home Pa +ge.

      Note - I have 5.8.4 and 5.8.5 installed as well. Except for 5.8.0, they inherit each others' modules, as well. 5.8.0 is what comes with RHEL3, which I leave as-is so that RHEL3 apps continue to work, while the rest were compiled into a new directory, /share/perl5, and are what I use for my own code. Before I upgraded to RHEL3, I had RH7.3, which had Perl 5.6, and I also had compiled 5.8.0, and 5.8.1.

      As to "start developpement with 5.0" - that's not quite what you're doing. Between 5.005 and 5.6, Perl renamed its numbering scheme a bit. 5.005 in the old scheme is the same as 5.5 in the new scheme. Which is significantly newer than 5.0 ;-)

      Update: After re-reading the output, I realised that I hadn't updated my perl5.8 symlink to the latest perl version. Corrected the output above.

Re^2: Solaris, Perl 5.8 and use 5.005
by freddo411 (Chaplain) on Mar 07, 2005 at 18:03 UTC
    I have the wonderful joy of having virtually the same issue at my company (using perl 5.005).
    First, before you do anything, you have to justify why you want to upgrade. There are some reasons that are irrefutable. These are the "We want to use feature XYZ and it's only in version 5.x.x". Features like that would include:
    • * Near-transparent handling of Unicode (5.8)
    • * A threading model worth having (5.8)
    • * Granular warnings (5.6)
    • * A module from CPAN that only works on version 123
    To this list you can add:
    • the ability to use warnings without -w
    • the ability to have our $var
    • better handling of FOO->method;
      (broken in 5.005, must type FOO->method(); )
    Since legacy code is mostly likely to break with such a new verison of perl, it is important to upgrade in a graceful way. The best way to do this is to install perl 5.8 in its own directory (your home dir perhaps, or /usr/local/bin), install all the CPAN modules you need, and migrate over one perl app at a time, testing as you go. Eventually, every app can point to perl 5.8 if the effort is made to port it, and those apps that are not ported to perl 5.8 can happily stay the way they are.

    -------------------------------------
    Nothing is too wonderful to be true
    -- Michael Faraday

Log In?
Username:
Password:

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

How do I use this? | Other CB clients
Other Users?
Others imbibing at the Monastery: (7)
As of 2019-11-16 22:16 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    Strict and warnings: which comes first?



    Results (85 votes). Check out past polls.

    Notices?