Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 24 Mar 2004 18:19:58 +0000
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        Bart Silverstrim <bsilver@chrononomicon.com>, FreeBSD Questions <freebsd-questions@freebsd.org>
Subject:   Re: How To Upgrade to Perl 5.8 on 4.9 System?
Message-ID:  <20040324181958.GA68070@happy-idiot-talk.infracaninophile.co.uk>
In-Reply-To: <20040324161855.GA1816@cs025_2k>
References:  <4060DB5B.20305@mykitchentable.net> <4060E747.2050208@mac.com> <37EF4C48-7D92-11D8-8CE1-000A956D2452@chrononomicon.com> <20040324161855.GA1816@cs025_2k>

next in thread | previous in thread | raw e-mail | index | archive | help

--VS++wcV0S1rZb1Fb
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

On Wed, Mar 24, 2004 at 08:18:55AM -0800, Joshua Lokken wrote:
> * Bart Silverstrim <bsilver@chrononomicon.com> [2004-03-24 07:35]:
> >=20
> > On Mar 23, 2004, at 8:41 PM, Chuck Swiger wrote:
> >=20
> > >Drew Tomlinson wrote:
> > >>I'm using 4.9-RELEASE.  Is is possible to upgrade Perl from the=20
> > >>default 5.005 version to 5.8.2?
> > >
> > >Yes.
> > >
> > >>Are there any steps required beyond installing the port?
> > >
> > >Try:
> > >
> > >cd /usr/ports/lang/perl5.8
> > >make install
> > >use.perl port
> > >
> >=20
> > I also had to re-install some of my ports after installing the new Perl=
=20
> > and switching the system perl to the newer version (4.9-release-p3). =
=20
>=20
>=20
> If you install sysutils/portupgrade, you can do (after
> installing the new Perl)
>=20
> # portupgrade -rf perl

It would be nice if that was the case, but unfortunately it won't
work.  If you change the perl version, you usually need to reinstall
any extra perl modules -- that is, anything that installs files under
/usr/local/lib/perl5/{,site_perl/}5.X.Y/

Unfortunately most perl modules in the ports tree don't register a
dependency on perl itself. eg:

    % pkg_info -r p5-Time-HiRes\*
    Information for p5-Time-HiRes-1.55,1:
   =20
    Depends on:
   =20

Without that dependency in there, portupgrade(1) can't know that it
needs to update those ports.

The most effective way I've found to generate a list of ports that
should be upgraded say when upgrading from perl-5.005.03 would be:

    % find /usr/local/lib/perl5/5.00503 /usr/local/lib/perl5/site_perl/5.00=
5/ \
         -type f -print0 | xargs -0 -n 1 pkg_which | sort -u

Run this command before you update perl, saving the results.  Edit the
list to delete the lines for the old perl port, and any perl modules
that are now bundled with core perl port.  Then after you've installed
the new perl, run 'portupgrade -f' against that list of ports:

    # portupgrade -f `cat list-of-ports`

	Cheers,

	Matthew

--=20
Dr Matthew J Seaman MA, D.Phil.                       26 The Paddocks
                                                      Savill Way
PGP: http://www.infracaninophile.co.uk/pgpkey         Marlow
Tel: +44 1628 476614                                  Bucks., SL7 1TH UK

--VS++wcV0S1rZb1Fb
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (FreeBSD)

iD8DBQFAYdFOdtESqEQa7a0RAg+AAJ9ghLzj2JV81HzmVtpFTAyZoQlecQCfdaUg
tX7/vz1/a/QkfktSmX7rWos=
=+dnc
-----END PGP SIGNATURE-----

--VS++wcV0S1rZb1Fb--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040324181958.GA68070>