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

I had a look at my various installations of Perl.
When I need an upgrade ( from Perl 5.8.0 to 5.8.3 for example ), typically someone loads the new version down, compiles it and "make install" it. Now when I also have a lot of additional modules "make installed" in my old version, how can I automate this process ?
BTW does there exist a description of run a CPAN in order to use the automatic software installation ?

Replies are listed 'Best First'.
Re: Perl Upgrade
by Corion (Patriarch) on Sep 16, 2005 at 10:44 UTC

    You can create a bundle of all installed modules by using the autobundle command from the CPAN.pm shell. On your fresh Perl installation, you then just install that bundle and it will pull down all modules and try to install them. cbrandtbuffalo wrote Order your autobundle by dependency, which can make the installation of your bundle more convenient.

    That concept does not extend well to Perl modules that require external libraries, like libxml or ImageMagic, but there is no common way to install and configure external libraries anyway.

Re: Perl Upgrade
by Smylers (Pilgrim) on Sep 16, 2005 at 10:57 UTC

    5.8.3 is binary compatible with 5.8.0, which in general is true if only the subversion (the 3rd part of the number) differs.

    So instead of downloading and recompiling all your modules, simply configure the new Perl to include the existing module directories in @INC.

    Smylers

      Perhaps in the general case, but Abigail's answer in this thread seems to indicate that 5.8.3 and 5.8.0 are not binary compatible (unless they rolled back the change they made in 5.8.1)

        perl582delta
        Incompatible Changes
            For threaded builds for modules calling certain re-entrant system calls,
            binary compatibility was accidentally lost between 5.8.0 and 5.8.1.
            Binary compatibility with 5.8.0 has been restored in 5.8.2, which
            necessitates breaking compatibility with 5.8.1. We see this as the
            lesser of two evils.
        
            This will only affect people who have a threaded perl 5.8.1, and
            compiled modules which use these calls, and now attempt to run the
            compiled modules with 5.8.2. The fix is to re-compile and re-install the
            modules using 5.8.2.