Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 9 Jun 2004 12:44:06 +0100
From:      Matthew Seaman <m.seaman@infracaninophile.co.uk>
To:        Robert Fitzpatrick <robert@webtent.com>
Cc:        FreeBSD <freebsd-questions@freebsd.org>
Subject:   Re: Building Perl with shared lib libperl
Message-ID:  <20040609114406.GD12520@happy-idiot-talk.infracaninophile.co.uk>
In-Reply-To: <1086748276.2295.9.camel@columbus>
References:  <1086748276.2295.9.camel@columbus>

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

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

On Tue, Jun 08, 2004 at 10:31:16PM -0400, Robert Fitzpatrick wrote:
> Trying to install a procedural language in PostgreSQL 7.4.2, pl/perl,
> but it complains that my 'libperl is not a shared library' and that I
> may need to rebuild my Perl. I am using Perl 5.6.1, is there a way to
> set this option when using the port /usr/ports/lang/perl5?

Not with the land/perl5 port.  However, a shared libperl.so is built
by default for the lang/perl5.8 port -- recommend you update to that.

Since lang/perl5 is nolonger the default version to install in
FreeBSD-5.x I'm not entirely sure why the lang/perl5 port is still
stuck at perl-5.6.1.  That's a pretty ancient version now, and
perl.org recommends 5.8.4 as the standard version everyone should run.

Note that if you upgrade from perl-5.6.1 to perl-5.8.4 you will need
to re-install any perl modules so that perl-5.8.4 can find them, and
you will need to re-install various automake ports that invoke
perl5.x.y specifically.  See /usr/ports/UPDATING for some brief
instructions, but the procedure is generally something like this:

    # find /usr/local/lib/perl5/{5.6.1,site_perl/5.6.1} -type -f -print0 | \
        xargs -0 -n 1 pkg_which | sort -u > /tmp/perl-modules
    # portupgrade -o lang/perl5.8 -f lang/perl5
    # use.perl port
    # vi /tmp/perl-modules=20

(Edit the list of modules for sanity: take out the explicit references
to perl-5.6.1 and the '?', and various lines where 'pkg_which' thinks
the file belongs to more than one port.  You can (but this is not
mandatory) also remove ports which are supplied both as standalone and
that are bundled by default with perl but remember to pkg_delete
anything you aren't going to re-install)

    # xargs portupgrade -f < /tmp/perl-modules

which will churn away for quite some time.  Eventually you should end
up with /usr/local/lib/perl5/5.6.1 and
/usr/local/lib/perl5/site_perl/5.6.1 both being pretty much empty, and
with most of their contents transferred to the corresponding 5.8.4
directories.  If everything has gone according to plan, the 5.6.1
directories will be redundant and can be deleted.

	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

--iVCmgExH7+hIHJ1A
Content-Type: application/pgp-signature
Content-Disposition: inline

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

iD8DBQFAxvgGiD657aJF7eIRArruAKCI5geDw+f0glJH5Sef5GZGakjOqACgtUmr
xdsK/TpprgX4dhPMMNATyhM=
=HePn
-----END PGP SIGNATURE-----

--iVCmgExH7+hIHJ1A--



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