On Wed, Aug 6, 2008 at 11:40 PM, eszett via RT <bug-PAR@rt.cpan.org> wrote:
Show quoted text> I build it myself with perl -MCPAN -eshell
> the package libperl-dev was installed
OK, here's what you should look for:
(1) Where's your shared perl library (on *nix typically named "libperl*.so*")
installed and under what names - there could be several
symlinks, e.g. (some release of) Debian/Ubuntu has
/usr/lib/libperl.so -> /usr/lib/libperl.so.5.8 -> /usr/lib/libperl.so.5.8.8
Note that the leftmost symlink exists only if you have package
libperl-dev installed.
(2) Note the internal "soname" of said shared library, e.g.
$ readelf -d /usr/lib/libperl.so.5.8.8| grep soname
0x0000000e (SONAME) Library soname: [libperl.so.5.8]
(3) Note what your Perl knows about the shared Perl library
$ perl -MConfig -e 'print $Config{libperl}, "\n"'
libperl.so
(4) When building PAR::Packer yourself, after running "perl Makefilel.PL",
check what the following two lines in myldr/Makefile contain in
the LIBPERL position:
my_perl.c:
$(PERL) F2C LIBPERL $@ load_me_0 LONG_LITERAL CHUNK_SIZE
(5) LIBPERL may contain any name of your shared Perl library, but
basename(LIBPERL) should be exactly the soname determined in (2),
because basename(LIBPERL) is what will be used when the
copy of LIBPERL conatined in your PAR-packed executable is extracted.
Unfortunately (1)-(5) is _not_ the recipe implemented in myldr/Makefile.PL,
but rather some heuristics that may sometimes fail.
I'm highly convinced that in your case you ended up with
LIBPERL=/usr/lib/libperl.so.5.8.8, but soname=libperl.so.5.8
Show quoted text> I'll try to install PAR::Packer from distro package and check again. But before I need to
> figure out how to remove PAR::Packer builded with CPAN.
It shouldn't be hard as Debian/Ubuntu have configured Perl so that
CPAN-built modules will install into /usr/local, instead of messing up
/usr/lib etc. BTW, Debian has a package "dh-make-perl" that will
(in most cases) automatically take a module from CPAN and turn it
into a Debian package (including proper dependencies, registration
of installed files with the package system etc).
Cheers, Roderich