in reply to TT2 and FB between two different installations

One big problem you seem to have is that you have a server with some older versions of perl-modules. Is that a server under your control, i.e. can you update the machine or at least install new versions of the modules?

If yes, then that is the first thing you should do. If no, then there is no real advantage in installing CGI 3.38 on your local machine.

If you want to get rid of modules you installed into /usr/local/share/perl/, you might just delete them and adjust perllocal.pod (see http://www.cpan.org/misc/cpan-faq.html#How_installed_modules). But I haven't tested this method and can't guarantee its correctness. The absence of the question 'How can I delete a perl module installed by cpan' in the CPAN FAQ might be a warning sign ;-).

  • Comment on Re: TT2 and FB between two different installations

Replies are listed 'Best First'.
Re^2: TT2 and FB between two different installations
by LesleyB (Friar) on Jul 21, 2008 at 16:27 UTC

    Tankyou for your reply

    I do have control of the remote machine and could upgrade. This would then be outside the standard installation on the remote machine.

    I did load CPAN modules on my local machine, to get the latest versions of some stuff but this became a problem when a system upgrade occurred. The system didn't like the Errno.pm file in /usr/local/share/perl/5.8.8 and refused to install a cpio upgrade.

    I am wary of having the same problem on my remote machine.

      Isn't Errno.pm a core module? Then why do you have it in /usr/local/share?

      The only reason to account for that situation that I can think of is that you installed a new perl version in /usr/local and the system is using this new perl now.

      In that case it might help to rename the newer perl to perl5.8.8 (or delete it, since it probably is an alias to perl5.8.8 anyway). Let the system use and update its old perl. In your homedirs ~/bin you can put an alias to perl5.8.8. Provided that your home bin is first in your PATH your non-root scripts will then use the newer perl.

      IMPORTANT: The only script that you must call as root with perl5.8.8 instead of the system perl is cpan (if you want the perl modules in /usr/local and not in your homedir). You might even patch the cpan script with 'use 5.8.8' so that you don't forget it.

      This should probably also help your cpio upgrade getting through.

      This is also the method I would employ on your remote machine. Install a newer perl in /usr/local and make sure through renaming that root and the system doesn't use it. Let the system care for the system perl, only your web scripts (in other words the web server) and the cpan script should use the newer perl.

        Well, I went into CPAN and found that I could list all the modules that needed updating so I ran through lots of those. A lot got installed in /usr/local/share/perl/5.8.8.

        I just checked my perl version

        lesleyb@fawcett:~$ /usr/bin/perl -v This is perl, v5.8.8 built for i486-linux-gnu-thread-multi Copyright 1987-2006, 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.org/, the Perl Home Pa +ge.

        I have no idea where this newer version of perl might be hiding but I am not picking it up in mormal operations. Or at least what is normal for me ;)

        I fixed the cpio upgrade problem by removing Errno.pm and keeping my fingers crossed (and eyes wide shut). The upgrade then worked. What worries me is I have no idea what else is lurking in /usr/local/share/perl/5.8.8 that might come up and bite me later on.

        It's not a question of wanting 5.10 on board at the moment. In fact I want the opposite. I would like to keep both the local and remote machine in step and I'm happy to stay on 5.8.8. All I really want to do is upgrade some modules to the latest for my version of perl.

        As an example, CGI.pm is two years out of date on Debian stable. The version on Debian stable contains a minor bug which irritates me. I would like to produce to the charset I want or the project requires.

        Anyway, at the moment I'm restricting my development to the remote machine so that I develop with what I actually have available on a standard install.

        I'm begining to think I need to reinstall perl completely on the local machine just to get back to a known state and I'll have to ask in the appropriate quarters about the feasibility of that. For instance, I have no idea whether the non-existence of perl would break anything in apt-get or aptitude. It would kind of stuff things if it did!