CPAN conflict issue - CGI.pm vs ModPerl::Registry

G

Gabriel

Recently, I installed ModPerl::Registry on a Fedora Core Server, as
regular ModPerl didn't want to install, due to some janky Fedora Core
reason.
I wrote some CGI scripts, and all was well. Peace reigned, and my perl
scripts ran happily in the meadows, alongside unicorns and fairies.

Then, one day, for some foolish reason, I went to install CGI.pm on a
friday evening. The install went well, and I went home.
On monday morning, when I went to run some CGI scripts, they had
broken! (oh noes!)
A close inspection (or a `tail -1 /var/log/httpd/error_log` , actually)
revealed the following...

<ERROR_LOG>
Can't locate Apache.pm in @INC (@INC contains: ...
</TRUNCATED ERROR_LOG>

Now, I have no idea why installing CGI.pm has broken my scripts. Is
there a way of uninstalling a module, and, more importantly, would that
be likely to fix it?

My first thought upon looking at the error_log error, was to install
Apache.pm, but that only results in the following error during 'make
test'...

<ERROR>
/httpd -f `pwd`/t/conf/httpd.conf -X -d `pwd`/t &
/bin/sh: /httpd: No such file or directory
httpd listening on port 8529
will write error_log to: t/logs/error_log
letting apache warm up...\c
done
/usr/bin/perl t/TEST 0
still waiting for server to warm up...............not ok
server failed to start! (please examine t/logs/error_log) at t/TEST
line 95.
make: *** [run_tests] Error 111
/usr/bin/make test -- NOT OK
Running make install
make test had returned bad status, won't install without force
</ERROR>

Is 'httpd' a utility I need to install in order to install Apache.pm?


Aside from CPAN, and Apache.pm failing to install (probably due to some
FC oddity), what I don't understand is how installing CGI.pm managed to
break my existing install which was using ModPerl::Registry. I mean, I
didn't change any of my code, nor did I change my httpd.conf file...
<HTTPD.CONF>
PerlModule ModPerl::Registry
<Directory "/home/media/mod_perl/">
SetHandler perl-script
PerlResponseHandler ModPerl::Registry
PerlOptions +ParseHeaders
#PerlOptions -GlobalRequest
Options +ExecCGI +Indexes
</Directory>
</HTTPD.CONF>

The only thing I can think of is CGI.pm (3.23) broke something with the
ModPerl::Registry working...

So, is there a way of uninstalling a module, and, if so, would that be
likely to repair my problem?
 
B

Brian McCauley

Gabriel said:
Recently, I installed ModPerl::Registry on a Fedora Core Server, as
regular ModPerl didn't want to install, due to some janky Fedora Core
reason.

What do you mean by "regular ModPerl"?

What version of Apache and what version of mod_perl are you running?

IIRC ModPerl::Registry is part of mod_perl2 (which runs with Apache 2)
<ERROR_LOG>
Can't locate Apache.pm in @INC (@INC contains: ...
</TRUNCATED ERROR_LOG>

Well it would help to know what line was generating that error.
Now, I have no idea why installing CGI.pm has broken my scripts. Is
there a way of uninstalling a module,

No. No backups of the overwritten files are kept.
and, more importantly, would that be likely to fix it?

Uninstalling the CGI.pm you installed and putting back the version that
was there previously probably would fix it.
My first thought upon looking at the error_log error, was to install
Apache.pm, but that only results in the following error during 'make
test'...

<ERROR>
/httpd -f `pwd`/t/conf/httpd.conf -X -d `pwd`/t &
/bin/sh: /httpd: No such file or directory
httpd listening on port 8529
will write error_log to: t/logs/error_log
letting apache warm up...\c
done
/usr/bin/perl t/TEST 0
still waiting for server to warm up...............not ok
server failed to start! (please examine t/logs/error_log) at t/TEST
line 95.
make: *** [run_tests] Error 111
/usr/bin/make test -- NOT OK
Running make install
make test had returned bad status, won't install without force
</ERROR>

Is 'httpd' a utility I need to install in order to install Apache.pm?

Yes, httpd is Apache. You can't install Apache.pm (aka mod_perl)
without Apache installed. However at various stages thoughout the
evolution of mod_perl there where some fairly major renamings of the
Perl modules that comprise mod_perl.

Also CGI.pm interacts rather closely with mod_perl.

You really need to be sure that your versions of Apache, mod_perl and
CGI.pm are all interoperable versions.
Aside from CPAN, and Apache.pm failing to install (probably due to some
FC oddity), what I don't understand is how installing CGI.pm managed to
break my existing install which was using ModPerl::Registry. I mean, I
didn't change any of my code,

Did your code call CGI.pm ?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,900
Latest member
Nell636132

Latest Threads

Top