- 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