Perl library issue while running script on different server - perl

My perl script is working fine on Server 1 and same script is giving error on Server 2.
On both server I have same library but still it is giving error.
I have tried by setting LD_LIBRARY_PATH but still m getting same error.
The same script is running on Server 1 and not running on Server 2. Even after having the same OS and Kernel version.
Error(while running perl script related to perl lib load) is as below:
Can't load '/user/csm/64-bit/cpan/5.20.2-2014.10/lib/auto/Net/SSLeay/SSLeay.so' for module Net::SSLeay: libssl.so.1.0.0: cannot open shared object file: No such file or directory at /user/csm/64-bit/perl/5.20.2/lib/5.20.2/x86_64-linux-thread-multi/DynaLoader.pm line 193.
at /user/csm/64-bit/cpan/5.20.2-2014.10/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at /user/csm/64-bit/cpan/5.20.2-2014.10/lib/IO/Socket/SSL.pm line 19.
BEGIN failed--compilation aborted at /user/csm/64-bit/cpan/5.20.2-2014.10/lib/IO/Socket/SSL.pm line 19.
Compilation failed in require at /user/csm/64-bit/cpan/5.20.2-2014.10/lib/Net/HTTPS.pm line 26.
Can't load '/user/csm/64-bit/cpan/5.20.2-2014.10/lib/auto/Crypt/SSLeay/SSLeay.so' for module Crypt::SSLeay: libssl.so.1.0.0: cannot open shared object file: No such file or directory at /user/csm/64-bit/perl/5.20.2/lib/5.20.2/x86_64-linux-thread-multi/DynaLoader.pm line 193.
at /user/csm/64-bit/cpan/5.20.2-2014.10/lib/Net/SSL.pm line 20.
Compilation failed in require at /user/csm/64-bit/cpan/5.20.2-2014.10/lib/Net/SSL.pm line 20.
Compilation failed in require at /user/csm/64-bit/cpan/5.20.2-2014.10/lib/Net/HTTPS.pm line 30.
Compilation failed in require at /user/csm/64-bit/cpan/5.20.2-2014.10/lib/LWP/Protocol/https.pm line 8.
Compilation failed in require at (eval 43) line 2.

Related

Getting error while executing makeinfo on cygwin

While executing makeinfo on cygwin I am getting the following errors. I am using the perl version 5.32.1
23:16 Harshal:~> makeinfo
Can't locate if.pm in #INC (you may need to install the if module) (#INC contains: /usr/lib/texinfo /usr/share/texinfo/lib/Text-Unidecode/lib /usr/share/texinfo/lib/Unicode-EastAsianWidth/lib /usr/share/texinfo/lib/libintl-perl/lib /usr/share/texinfo /usr/share/texinfo /usr/local/lib/perl5/site_perl/5.32/x86_64-cygwin-threads /usr/local/share/perl5/site_perl/5.32 /usr/lib/perl5/vendor_perl/5.32/x86_64-cygwin-threads /usr/share/perl5/vendor_perl/5.32 /usr/lib/perl5/5.32/x86_64-cygwin-threads /usr/share/perl5/5.32) at /usr/share/texinfo/Texinfo/Structuring.pm line 27.
BEGIN failed--compilation aborted at /usr/share/texinfo/Texinfo/Structuring.pm line 27.
Compilation failed in require at /usr/share/texinfo/Texinfo/Convert/Converter.pm line 32.
BEGIN failed--compilation aborted at /usr/share/texinfo/Texinfo/Convert/Converter.pm line 32.
Compilation failed in require at /usr/bin/makeinfo line 99.
BEGIN failed--compilation aborted at /usr/bin/makeinfo line 99.
If someone can provide some pointer on how to resolve this issue would be helpful
I tried updating the perl version. I tried commetting out the code on line num 27 in structuring.pm didn;t workout. I am not from software background but i need the above thing for some RISCV based toolchain update.
Any help woudl be really appreciated .
Something's wrong with your system. This is a file included in the perl-5.32.1-2 package. It should be found at
/usr/share/perl5/5.32/if.pm
Try reinstalling the perl package. If the file isn't missing, something's wrong with the permissions.

Unable to run latexindent macOS Monterey 12.0.1

I need to be able to run the command latexindent but I get this error every time:
Unknown PerlIO layer 'encoding' at /usr/local/texlive/2021/texmf-dist/scripts/latexindent/LatexIndent/Document.pm line 21.
Unknown PerlIO layer "encoding" at /opt/homebrew/Cellar/perl/5.34.0/lib/perl5/5.34.0/open.pm line 126.
Unknown PerlIO layer "encoding" at /opt/homebrew/Cellar/perl/5.34.0/lib/perl5/5.34.0/open.pm line 134.
Unknown PerlIO layer "encoding" at /opt/homebrew/Cellar/perl/5.34.0/lib/perl5/5.34.0/open.pm line 135.
Attempt to reload PerlIO/encoding.pm aborted.
Compilation failed in require at /usr/local/texlive/2021/texmf-dist/scripts/latexindent/LatexIndent/FileExtension.pm line 20.
BEGIN failed--compilation aborted at /usr/local/texlive/2021/texmf-dist/scripts/latexindent/LatexIndent/FileExtension.pm line 20.
Compilation failed in require at /usr/local/texlive/2021/texmf-dist/scripts/latexindent/LatexIndent/Document.pm line 29.
BEGIN failed--compilation aborted at /usr/local/texlive/2021/texmf-dist/scripts/latexindent/LatexIndent/Document.pm line 29.
Compilation failed in require at /usr/local/texlive/2021/bin/universal-darwin/latexindent line 27.
BEGIN failed--compilation aborted at /usr/local/texlive/2021/bin/universal-darwin/latexindent line 27.
I installed MacTeX with Homebrew through this command brew install --cask mactex. When I type the command which latexindent it gives this /usr/local/texlive/2021/bin/universal-darwin/latexindent. I have Perl v5.34.0 and it is here /opt/homebrew/bin/perl.
How do I set the encoding for PerlIO?
I solved by installing latexindent via homebrew.
The command is brew install latexindent.
I'm on MacOS Monterey 12.4
Based on this question, I found a solution to my problem like this :
I deleted : ~/perl5, ~/.cpan, ~/.cpanm;
I restarted my computer;
Then I installed Log::Log4perl with the command cpan install Log::Log4perl. There it asked me if I wanted to choose automatic or
manual configuration mode. I chose the automatic mode;
Then I installed other modules based on this
post:
SQL::Statement, Text::CSV_XS,DBD::CSV, Log::Dispatch::File, cpan install YAML::Tiny, File::HomeDir, Unicode::GCString, Mac::SystemDirectory;
And finally the command latexindent --version gives me the version 3.9.1, 2021-03-21 and it works.

Perl module broke my windows xampp installation

PROBLEM: In the process of trying to install gitstat on a Windows7 machine I broke my xampp Apache installation. Now I can't get gitstat or apache to work.
APACHE ERROR:
[error] Can't load Perl file: C:/xampp/apache/conf/extra/startup.pl for server localhost:80, exiting...`
Other people have reported this issue being caused by the PERL5LIB environment variable, but that variable does not exist on my machine.
WHAT I DID / GITSTAT ERROR:
I needed the SOAP::Lite module installed so I followed the windows guide here: http://soaplite.com/install.html
As far as I could tell I installed the module successfully, console output below
cpan[1]> install SOAP::Lite
CPAN: Storable loaded ok (v2.21)
Going to read '\xampp\perl\bin\.cpan\Metadata'
Database was generated on Wed, 27 Jun 2012 02:47:03 GMT
SOAP::Lite is up to date (0.714).
I saw a SOAP directory in perl/site/lib which (to me) means that the module should be available. When I look in my perllocal.pod file SOAP:Lite is in there.
Part of the gitstat installation instructions say to copy the Lite.pm file from perl/site/lib/SOAP into gitstat\gstat_pl\lib
However, when I try to perform step nine of gitstat installation (perl gitstat.pl HEAD) I get the following:
C:\xampp\htdocs\gitstat\gstat_pl>perl gitstat.pl HEAD
Supported versions:
BEGIN failed--compilation aborted at C:/xampp/perl/site/lib/SOAP/Lite.pm line 34
86.
Compilation failed in require at C:/xampp/perl/site/lib/SOAP/Constants.pm line 1
3.
BEGIN failed--compilation aborted at C:/xampp/perl/site/lib/SOAP/Constants.pm li
ne 13.
Compilation failed in require at lib/Lite.pm line 3444.
BEGIN failed--compilation aborted at lib/Lite.pm line 3444.
Compilation failed in require at gitstat.pl line 30.
If I don't copy the file from perl/site/lib/SOAP then I get
C:\xampp\htdocs\gitstat\gstat_pl>perl gitstat.pl HEAD
Can't locate lib/Lite.pm in #INC (#INC contains: C:/xampp/perl/lib C:/xampp/perl
/site/lib .) at gitstat.pl line 30.
I don't understand why CPAN didn't install the Lite.pm module in the #INC path or why the compilation might fail when the module is available, or most importantly why my Apache install is broken. Also I'm very new to Perl and CPAN and my understanding of Apache is primitive so simpler explanations would be greatly appreciated.

Error when trying to use XML::Parser under modperl2 - Could not load module

I've run into a problem when using XML::Parser under our modperl setup in production (on AIX 5.3). It works fine in development but fails on production with the following error:
[Tue Apr 03 08:44:03 2012] [error] Can't load '/wload/es1p/app/perl/lib/site_perl/5.10.1/aix/auto/XML/Parser/Expat/Expat.so' for mo
ule XML::Parser::Expat: Could not load module /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/auto/XML/Parser/Expat/Expat.so.\n\tDepe
dent module /wload/es1p/app/usr/local/apache2/lib/libexpat.a(libexpat.so.1) could not be loaded.\n\tMember libexpat.so.1 is not fou
d in archive \nCould not load module /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/auto/XML/Parser/Expat/Expat.so.\n\tDependent mod
le /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/auto/XML/Parser/Expat/Expat.so could not be loaded. at /wload/es1p/app/perl/lib/5.
0.1/aix/DynaLoader.pm line 200.\n at /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/XML/Parser.pm line 18\nCompilation failed in req
ire at /wload/es1p/app/perl/lib/site_perl/5.10.1/aix/XML/Parser.pm line 18.\nBEGIN failed--compilation aborted at /wload/es1p/app/p
rl/lib/site_perl/5.10.1/aix/XML/Parser.pm line 22.\nCompilation failed in require at /wload/es1p/app/perl/lib/site_perl/5.10.1/XML/
Path/XMLParser.pm line 7.\nBEGIN failed--compilation aborted at /wload/es1p/app/perl/lib/site_perl/5.10.1/XML/XPath/XMLParser.pm li
e 7.\nCompilation failed in require at /wload/es1p/app/perl/lib/site_perl/5.10.1/XML/XPath.pm line 13.\nBEGIN failed--compilation a
orted at /wload/es1p/app/perl/lib/site_perl/5.10.1/XML/XPath.pm line 13.\nCompilation failed in require at /wload/es1p/app/perl/lib
site_perl/5.10.1/Net/SAML2/IdP.pm line 23.\nBEGIN failed--compilation aborted at /wload/es1p/app/perl/lib/site_perl/5.10.1/Net/SAML
/IdP.pm line 23.\nCompilation failed in require at /wload/es1p/app/perl/lib/site_perl/5.10.1/Net/SAML2.pm line 69.\nBEGIN failed--c
mpilation aborted at /wload/es1p/app/perl/lib/site_perl/5.10.1/Net/SAML2.pm line 69.\nCompilation failed in require at /wload/es1p/
pp/usr/local/apache2/perl-bin/sso.pl line 4.\nBEGIN failed--compilation aborted at /wload/es1p/app/usr/local/apache2/perl-bin/sso.pl
The expat/expat-devel libraries were installed into /opt/freeware/lib using a package (the same one on dev and live) and both show the same output from ldd Expat.so:
Expat.so needs:
/usr/lib/libc.a(shr.o)
/opt/freeware/lib/libexpat.a(libexpat.so.1)
/unix
/usr/lib/libcrypt.a(shr.o)
I've tried setting up LIBPATH both in our dotfiles and in our mod_env configuration but with no luck. I'm not expecting someone to know the exact answer but I've run out of ideas as to what I can try so I'm hoping for some suggestions to try out.
EDIT: I should also point out that the same script using XML::Parser works perfectly as a normal cgi-bin script on our live server.
One thought: Maybe there are two different XML::Parser installed on your prod server. Your CGI pick one and your script pick the another?
Print out the #INC from script (on prod and dev) and from your working CGI and compare the result.
regards,

Perl XS included from a “use lib” directory can’t be found by ISAPI

I have a Perl web application that runs on both Apache and IIS6 on Windows Server 2003. On Apache this script works just fine. In IIS using ISAPI, I am getting the following error message:
Software error:
Can't load
'lib/auto/Sub/Name/Name.dll' for
module Sub::Name: load_file:The
specified module could not be found at
C:/Perl/lib/DynaLoader.pm line 230.
at lib/DBIx/Class/Schema.pm line 10
Compilation failed in require at
lib/DBIx/Class/Schema.pm line 10.
BEGIN failed--compilation aborted at
lib/DBIx/Class/Schema.pm line 10.
Compilation failed in require at (eval
39) line 3. ...propagated at
C:/Perl/lib/CGI/Carp.pm line 314.
BEGIN failed--compilation aborted at
My/Schema.pm line 2. Compilation
failed in require at...
When NOT using ISAPI in IIS it runs fine. We would prefer to continue using ISAPI in our IIS environments. Why can't it find this module, even though it does when running normal Perl?
EDIT:
We were calling it with relative paths.
use lib qw{My lib}; # line in question
use My::Schema; # explodes
Mobrule, your comment enlightened us. The relative path was different between using the vanilla Perl interpreter and ISAPI.
use lib qw{My /Inetpub/wwwroot/cgi/lib}; # a little more specific...
use My::Schema; # not nearly as much dying now.
Thanks for the help!