Undefined PERL subroutine error after copy install
- Article Type: General
- Product: MetaLib
- Product Version: 3
We have almost completed our copy install from our old Solaris server to our new Solaris zone server.
I'm able to start up Oracle, Apache, and the metalib servers without any errors.
I can log into the admin site without any problem and I can log into the X-server and retrieve a session ID.
However, when I try to login to the main interface - I get a blank screen and the following error appears in the Apache error_log:
Can't use string ("0") as a HASH ref while "strict refs" in use at PDSTabService.pm line 128., referer: http://metalib.lib.abc.edu:8331/V
[Tue Oct 02 15:35:53 2007] [error] [client 22.214.171.124] Undefined subroutine &PDSUtil::metalib_x_server called at PDSUtil.p
m line 598., referer: http://exlibris.lib.abc.edu:8331/pds?func=load-login&calling_system=metalib&institute=abc&url=http://
The metalib_x_server.pl indicates a problem with PERL:
exlibris-m3_1-DAT01>>perl -c metalib_x_server.pl
Can't locate IO/Socket/SSL.pm in @INC (@INC contains: ./../program /exlibris/metalib/m3_1/product/perl-5.8.2/lib/5.8.2/sun4-solaris /exlibris/metalib/m3_1/product/perl-5.8.2/lib/5.8.2 /exlibris/metalib/m3_1/product/perl-5.8.2/lib/site_perl/5.8.2/sun4-solaris /exlibris/metalib/m3_1/product/perl-5.8.2/lib/site_perl/5.8.2 /exlibris/metalib/m3_1/product/perl-5.8.2/lib/site_perl .) at metalib_x_server.pl line 4.
BEGIN failed--compilation aborted at metalib_x_server.pl line 4.
For some reason, the Metalib PERL installation didn't include a lot of standard Internet-related perl libraries, so I went ahead and installed the necessary HTTP/HTML/XML-related perl modules to the metalib "site_perl" install location.
This fixed a number of problems relating to "module not found" errors.
It's possible that newer versions of these modules are causing a problem.
I checked the incoming HTTP headers when attempting to go to the /V page and I don't see any errors, but it never passes you on to the login screen.
What's wrong with my Perl installation?
The out-of-the box installation of PERL (using the Metalib install documentation) does not install a lot of necessary modules (necessary for Metalib), or for some supporting part of Metalib, e.g. SSL enabled Apache.
Perhaps this is based on an assumption that most, if not all of those modules are usually installed by default at the OS level, however, for whatever reason, the Metalib perl executable doesn't see any of the OS-level perl module install locations, i.e. if you do perl -V, you only see the metalib directories in PERL's @INC.
The problem is that some perl modules don’t allow you to build them with a different compiler than you built PERL with or even some of the libraries it needs.
Once all of the correct modules are installed and compiled correctly, you should be able to log into the default search interface.
Based on your descriptions of these Perl-related issues, it sounds like you were using an older version of the ‘How to Copy MetaLib’ document.
Before embarking on any major server activity that requires Ex Libris documentation (e.g. Metalib upgrade), be sure to go to the Documentation Portal and verify that you have the latest document revisions appropriate for the version of Metalib you are upgrading to.
- Article last edited: 10/8/2013