For Programmers: Free Programming Magazines  


Home > Archive > PERL Modules > September 2006 > CPAN conflict issue - CGI.pm vs ModPerl::Registry









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

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

2006-09-25, 6:57 pm

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?

Brian McCauley

2006-09-28, 6:56 pm


Gabriel wrote:
> 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 ?

Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com