Why does the Server Readiness Tool tell me Perl modules are missing when I've already installed them?Our handy Server Readiness Tool can be downloaded and used prior to purchasing a self-hosted edition of our web based room booking and resource scheduling software to quickly assess whether or not your server is ready to run our software.
As part of the checks the Server Readiness Tool performs, it will verify the existence of the Perl modules which MIDAS requires in order to function correctly. If any of these required modules are not found, the tool will inform you and provide guidance on how to install missing Perl modules.
Once you've installed any missing Perl modules, you can then run the Server Readiness Tool again, and all being well all tests will pass and your server will be ready to install and run MIDAS!
If however when you re-run the Server Readiness Tool after installing missing modules, you're informed that necessary modules are still missing, then it's likely that the modules you've just installed have not been installed to a correct location on your server.
For example, some servers have multiple instances of Perl installed at different locations, for different users or indeed different purposes (i.e. WHM/cPanel use an dedicated and isolated instance of Perl). If you've installed Perl modules to one of these instances of Perl, they may not be available to the specific Perl instance that you're running the Server Readiness Tool under, and therefore the Server Readiness Tool will report that they are not installed.
When looking for modules, Perl searches in the locations specified within either the @INC environmental variable (under Linux), or "Path" environmental variable (under Windows). If the modules cannot be found in one of folders (or their sub folders) contained within @INC/Path, then the Server Readiness Tool will report that the modules are missing.
You'll therefore need to ensure that any Perl modules you're installing are installed to a location reference within @INC/Path system variable.
|To view the contents of the "Path" environmental variable on Windows:||To view the contents of the "@INC" environmental variable on Linux:|
|To locate where a Perl module has been installed on Windows:||To locate where a Perl module has been installed on a Linux server:|
You can then compare the location on the Perl module with the locations specified in @INC/Path.
Here's an illustrative example on Linux:
# find / -name Eksblowfish
In the above example four different instances of the Crypt::Eksblowfish module were found on the server, however, not all of these paths are covered by the paths specified within the @INC variable.
As the path /usr/local/lib64/perl5/Crypt/Eksblowfish is covered by the @INC path /usr/lib64/perl5, the Server Readiness Tool will be able to locate this module.
If the location where your Perl modules are installed is not encompassed within one of the @INC/Path locations, this will be the reason for module not found errors/warnings when running the Server Readiness Tool.
You'd either need to modify the @INC/Path environmental variable to point to the location where your Perl modules are installed, or more preferably install Perl modules to a location already present in @INC/Path.
← Return to Knowledgebase