Trying to install/run RT with 2 Perls - Redhat Perl and self installed Perl

Hi all

Scenario:

Server - 64 bit RedHat 5 Enterprise with Perl and Apache provided (no
hand in this setup)

RT Version: 3.6.3
Perl Version: 5.8.8

Background:
I have successfully setup RT 3.6.3 in this environment by satisfying the
dependencies against the system Perl (installing from CPAN). RT is
running Apache and mod_perl.

The goal of this project is to create an RT setup that runs against a
local Perl version installed in /opt and has its Perl dependencies
satisfied there as well. The concern of the sys admins is that periodic
Red Hat patches will ‘break’ RT and the hope is that this proposed RT
setup will avoid against that possibility.
Disclaimer: I’m a relative Perl noobie.

Progress:

To avoid against the possibility of polluting the system Perl libraries,
I build Perl as non-root in /tmp and satisfy RT dependencies via CPAN
there. This goes smoothly. I also ensure that @INC is modified at Apache
startup to append the local Perl library paths at the front of the @INC
array.
I did this by having a PerlRequire startup.pl statement in the config
file and the startup.pl containing use lib qw(paths to search).

Roadblock:

Starting apache fails. I have tried rebuilding Perl several times with
different flags/switches off/on. The error message I always get is:

[Wed Oct 29 15:24:02 2008] [error] Can’t load
‘/opt/perl/lib/5.8.8/x86_64-linux/auto/Encode/Encode.so’ for module
Encode: /opt/perl/lib/5.8.8/x86_64-linux/auto/Encode/Encode.so:
undefined symbol: PL_curpad at
/opt/perl/lib/5.8.8/x86_64-linux/XSLoader.pm line 70.\n at
/opt/perl/lib/5.8.8/x86_64-linux/Encode.pm line 9\nCompilation failed in
require at /opt/rt3/lib/RT/I18N.pm line 64.\nBEGIN failed–compilation
aborted at /opt/rt3/lib/RT/I18N.pm line 64.\nCompilation failed in
require at /opt/rt3/lib/RT.pm line 48.\nBEGIN failed–compilation
aborted at /opt/rt3/lib/RT.pm line 48.\nCompilation failed in require at
/opt/rt3/bin/webmux.pl line 66.\nBEGIN failed–compilation aborted at
/opt/rt3/bin/webmux.pl line 66.\nCompilation failed in require at (eval
3) line 1.\n

Googling about PL_curpad is not helpful and I’ve searched the RT-user
archive to no avail. I’m suspecting the system Perl and the local Perl
are not getting along but I have no clue how to proceed from here. To
reiterate, I’m a Perl noobie.

Thanks in advance for any help or insights.

John

Perl, apache, and mod_perl all need to be built together. You
may be able to get it to work using fastcgi instead. Otherwise,
you will need to rebuild apache/mod_perl with your local version
of perl.

Good luck,
KenOn Thu, Oct 30, 2008 at 10:07:46AM -0700, John Seto wrote:

Hi all

Scenario:

Server - 64 bit RedHat 5 Enterprise with Perl and Apache provided (no
hand in this setup)

RT Version: 3.6.3
Perl Version: 5.8.8

Background:
I have successfully setup RT 3.6.3 in this environment by satisfying the
dependencies against the system Perl (installing from CPAN). RT is
running Apache and mod_perl.

The goal of this project is to create an RT setup that runs against a
local Perl version installed in /opt and has its Perl dependencies
satisfied there as well. The concern of the sys admins is that periodic
Red Hat patches will ‘break’ RT and the hope is that this proposed RT
setup will avoid against that possibility.
Disclaimer: I’m a relative Perl noobie.

Progress:

To avoid against the possibility of polluting the system Perl libraries,
I build Perl as non-root in /tmp and satisfy RT dependencies via CPAN
there. This goes smoothly. I also ensure that @INC is modified at Apache
startup to append the local Perl library paths at the front of the @INC
array.
I did this by having a PerlRequire startup.pl statement in the config
file and the startup.pl containing use lib qw(paths to search).

Roadblock:

Starting apache fails. I have tried rebuilding Perl several times with
different flags/switches off/on. The error message I always get is:

[Wed Oct 29 15:24:02 2008] [error] Can’t load
‘/opt/perl/lib/5.8.8/x86_64-linux/auto/Encode/Encode.so’ for module
Encode: /opt/perl/lib/5.8.8/x86_64-linux/auto/Encode/Encode.so:
undefined symbol: PL_curpad at
/opt/perl/lib/5.8.8/x86_64-linux/XSLoader.pm line 70.\n at
/opt/perl/lib/5.8.8/x86_64-linux/Encode.pm line 9\nCompilation failed in
require at /opt/rt3/lib/RT/I18N.pm line 64.\nBEGIN failed–compilation
aborted at /opt/rt3/lib/RT/I18N.pm line 64.\nCompilation failed in
require at /opt/rt3/lib/RT.pm line 48.\nBEGIN failed–compilation
aborted at /opt/rt3/lib/RT.pm line 48.\nCompilation failed in require at
/opt/rt3/bin/webmux.pl line 66.\nBEGIN failed–compilation aborted at
/opt/rt3/bin/webmux.pl line 66.\nCompilation failed in require at (eval
3) line 1.\n

Googling about PL_curpad is not helpful and I’ve searched the RT-user
archive to no avail. I’m suspecting the system Perl and the local Perl
are not getting along but I have no clue how to proceed from here. To
reiterate, I’m a Perl noobie.

Thanks in advance for any help or insights.

John


The rt-users Archives

Community help: http://wiki.bestpractical.com
Commercial support: sales@bestpractical.com

Discover RT’s hidden secrets with RT Essentials from O’Reilly Media.
Buy a copy at http://rtbook.bestpractical.com