[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Perl upgrade risks



On Wed, Jun 29, 2005 at 05:45:56PM -0300, Antonio Lobato wrote:
> 
> 	I have a Debian Woody server running a lot of services such as 
> cyrus/postfix, apache, mysql-server, jabberd2, and more... Such as a 
> good woody system, my Perl is 5.6.1, and there are tons of scripts 
> that I made and even normal system scripts that uses this perl 
> version. Now I'll install a software (bandersnatch, for jabberd2 chat 
> logging) that needs Perl 5.8.0 a least.
> 
> 	Well, I can pinning the system to woody/oldstable and upgrade only 
> Perl to 5.8.7 (stable), but my question is: Will such Perl upgrade 
> (from 5.6.1 to 5.8.7) break some old script?
> 	
> 	This is a production server and I have to be sure that I can do it. 

I don't think there's a clear Yes or No answer. It very much depends on
exactly what features the perl code in question is using.
Having issued that warning, I should add that, according to my
experience with upgrading perl versions, it usually doesn't cause any
problems -- except if the code contains exceptionally dirty hacks.
The main problem here is that you'd typically not know...

So, I think, you essentially have two options:

(1) Read through all "perldelta"[1] documents to get an idea of what
has changed from version to version, and then somehow figure out whether
any of that applies to the perl code you're using.  (Definitely sounds
like a lot of work, with an unsure outcome...)

(2) Install the new perl 5.8.7 in /usr/local and leave 5.6.1 as it is.
This is probably the safest bet.  In your software that needs >5.8.0,
make sure you're calling the new version, i.e. replace #!/usr/bin/perl
with #!/usr/local/bin/perl (or wherever you've put it).
I'm not entirely sure how involved it is to install the standard debian
package in a different location (such that the binary also pulls in its
correct libs...(!)), so in case of doubt I'd "simply" build perl from
source.

Good luck,
Almut

[1] with each perl version there's a perldelta.pod file containing the
changes since the previous release (there's also a "Changes" file, but
that's probably too detailed for the purpose at hand).  You can read it
with "perldoc perldelta", but as mentioned, that only contains the most
recent changes.  To get an idea of the cumulative changes from 5.6.1 to
5.8.7, you'd have to read (and merge in your head) all perldelta files
that have appeared in between...  In case you're still not scared off
by now ;)  you can find them all here:
http://perldoc.perl.org/perl.html#Miscellaneous



Reply to: