Shared object "libperl.so" not found, required by "exim"

FreeBSD specific actions

Shared object "libperl.so" not found, required by "exim"

Postby lik » Tue Aug 04, 2009 5:07 am

On FreeBSD server with cPanel control panel Exim restart lead us to the following errors:
Code: Select all
root# /scripts/restartsrv_exim
info [restartsrv_exim] BSD::Resource not available.  Resource Limits not adjusted
/libexec/ld-elf.so.1: Shared object "libperl.so" not found, required by "exim"
/libexec/ld-elf.so.1: Shared object "libperl.so" not found, required by "exim"
root#


This error may be caused by recent cpanel upgrade (upcp) and other 'perl-involved' maintenance on the server. First part of error message can be fixed by installing CPAN modules manually:
Code: Select all
cpan BSD::Resource
The next one(most likely), would be:
cpan YAML

or the same actions with help of cPanel scripts:
Code: Select all
/scripts/perlinstaller BSD::Resource
/scripts/perlinstaller YAML

Reinstalling Exim with help of cPanel "/scripts/eximup --force" do not fix the problem with "libperl.so". In rare cases, reinstalling Exim from FreeBSD ports may solve the issue.
This problem can be fixed by running:
Code: Select all
cd /usr/ports/lang/perl5.8
make clean
make
make install

Remember to update the ports that have Perl as a dependency with the perl-after-upgrade script. Make sure you read the script documentation (embedded) and double check for anything that might have been forgotten.

perl-after-upgrade

DESCRIPTION

The standard procedure after a perl port (either lang/perl5.6 or lang/perl5.8) upgrade is to basically reinstall all other packages that
depend on perl. This is always a painful exercise. The perl-after-upgrade utility makes this process mostly unnecessary.

The tool goes through the list of installed packages, looks for those that depend on perl, moves files around, modifies shebang lines in those
scripts in which it is necessary to do so, tries its best to adjust dynamically linked binaries that link with libperl.so in the old path,
and updates the package database.

After installation of the new perl is complete, either by hand from the ports collection, or from a package, or via portupgrade, do the following:
Code: Select all
/usr/local/bin/perl-after-upgrade

Do not specify any arguments at first, so it does nothing destructive.
Pay attention to the produced output and especially to error-list at the end, if any. Run the utility again, with -f command line option.
This will actually do the work:
Code: Select all
/usr/local/bin/perl-after-upgrade -f

Ensure, that Exim is satisfied:
Code: Select all
ldd /usr/sbin/exim

Also, very lame temporal solution exists: "ln -s /usr/local/lib/perl5/5.8.9/mach/CORE/libperl.so /usr/local/lib"
http://docs.cpanel.net/twiki/bin/view/SoftwareDevelopmentKit/TroubleshootingPerl
lik
Founder
Founder
 
Posts: 497
Joined: Wed Dec 15, 2010 3:21 am

Return to FreeBSD specific

 


  • Related topics
    Replies
    Views
    Last post