[rt-users] Trouble/Error with Web deployment httpd/apache/mod_fcgid

Bill Cole rtusers-20090205 at billmail.scconsult.com
Mon Nov 23 16:06:49 EST 2015


On 23 Nov 2015, at 11:02, dwdixon wrote:

> I'm not an Apache/httpd configuration
> expert especially when modules are involved so I would GREATLY 
> appreciate
> any and all help:
>
> ****************************************************************************
> Can't locate UNIVERSAL/require.pm in @INC (@INC contains:
> /opt/rt4/sbin/../local/lib /opt/rt4/sbin/../lib /usr/local/lib64/perl5
> /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl
> /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at
> /opt/rt4/sbin/../lib/RT.pm line 60.
> BEGIN failed--compilation aborted at /opt/rt4/sbin/../lib/RT.pm line 
> 60.
> Compilation failed in require at /opt/rt4/sbin/rt-server.fcgi line 86.
> ****************************************************************************

As others have noted, using CPAN on CentOS 7 can be sketchy. It's very 
easy to be drawn into installing modules locally under /root/perl5/ 
where normal Perl programs won't ever see them or clobbering files owned 
by yum-installed packages. Care is needed...

For the immediate issue, you can resolve the problem by enabling the 
EPEL repository for yum (see https://fedoraproject.org/wiki/EPEL) and 
installing the needed module:

	yum install perl-UNIVERSAL-require

HOWEVER, since you have had stuff installed (presumably by CPAN and a 
local::lib configuration) in a private place only for use by root with 
suitable variables in the environment, you probably want to fix that[1] 
and install everything possible for RT via yum, filling in whatever is 
missing with CPAN *NOT* using a private module tree. I recently did this 
for a RT4.4rc1 install on CentOS 7 by massaging the output of "make 
testdeps" into a whopping huge yum command[2]:

	make testdeps  |fgrep MISSING |egrep -v ' (owner|group) |>=5\.10\.'|awk 
'{print $1}'|sort -u |sed 's/::/-/g'|sed 's/^/perl-/'| xargs -rt yum 
list|grep '^perl-' |awk '{print $1}' |xargs -rt yum install -y

Following that (go get a cup of coffee, it will be a while...) you MAY 
still have unmet dependencies, since RT demands various modules and 
versions of modules that the EPEL and "base" repos don't have. Those can 
be installed from CPAN (or 'make fixdeps') after "yum erase"-ing any 
too-old versions that were installed with yum.


FOOTNOTES:

[1] Wipe the private tree for root:

		rm -rf /root/perl5/

     Remove any lines from /root/.bashrc or /root/.bash_profile like 
these
     which set up the relevant environment variables for local::lib :

		export PERL_LOCAL_LIB_ROOT="$PERL_LOCAL_LIB_ROOT:/root/perl5";
		export PERL_MB_OPT="--install_base /root/perl5";
		export PERL_MM_OPT="INSTALL_BASE=/root/perl5";
		export PERL5LIB="/root/perl5/lib/perl5:$PERL5LIB";
		export PATH="/root/perl5/bin:$PATH";


[2] ARE YOU CRAZY? Don't just run that because I said so! Be sure you 
understand what it DOES! Test it by breaking the pipeline before that 
last xargs and see if what it's going to install seems sane FOR YOUR 
SYSTEM.


More information about the rt-users mailing list