Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
mod_perl not finding lib.pm
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Networking & Security
View previous topic :: View next topic  
Author Message
vladzz
n00b
n00b


Joined: 08 May 2006
Posts: 6
Location: Adelaide, South Australia

PostPosted: Tue May 23, 2006 10:16 pm    Post subject: mod_perl not finding lib.pm Reply with quote

Hi guys, I need your help. I have installed apache2 and mod_perl but seem to be having a problem apache2 won't start up. It keeps looking for a lib.pm file this exists in /usr/lib/perl5/5.8.7/i586-linux but when I look at the error logs it gives me the paths where its looking and in there is /usr/lib/5.8.7/i386-linux but not the i586-linux one. How do I change the perl runtime or whatever to include looking in that other place as well for perl libraries. Or do I need to unmerge mod_perl and recompile it with different USE flags or something????

thanks,
vlado
_________________
http://www.vladzz.com
Back to top
View user's profile Send private message
BitJam
Advocate
Advocate


Joined: 12 Aug 2003
Posts: 2513
Location: Silver City, NM

PostPosted: Wed May 24, 2006 3:55 am    Post subject: Reply with quote

Something is screwy. As a quick fix you could try putting in a symlink from the missing directory to the existing one:
Code:
# cd /usr/lib/perl5/5.8.7
# ln -s i586-linux i386-linux

To actually fix the problem you should first do a perl -V outside of mod_perl:
Code:
# perl -V
[snip a lot of stuff but at the bottom is:]
@INC:
    /etc/perl
    /usr/lib/perl5/site_perl/5.8.7/i686-linux
    /usr/lib/perl5/site_perl/5.8.7
    /usr/lib/perl5/site_perl
    /usr/lib/perl5/vendor_perl/5.8.7/i686-linux
    /usr/lib/perl5/vendor_perl/5.8.7
    /usr/lib/perl5/vendor_perl
    /usr/lib/perl5/5.8.7/i686-linux
    /usr/lib/perl5/5.8.7
    /usr/local/lib/site_perl
    .

If this is the same set of paths as in the mod_perl error then there is something wrong with your Perl installation. Or alternatively you could run the following to just print out @INC and check that all its paths exist:
Code:
# ls -d -1 $(perl -e 'print "@INC"')
ls: /etc/perl: No such file or directory
.
/usr/lib/perl5/5.8.7
/usr/lib/perl5/5.8.7/i686-linux
/usr/lib/perl5/site_perl
/usr/lib/perl5/site_perl/5.8.7
/usr/lib/perl5/site_perl/5.8.7/i686-linux
/usr/lib/perl5/vendor_perl
/usr/lib/perl5/vendor_perl/5.8.7
/usr/lib/perl5/vendor_perl/5.8.7/i686-linux
/usr/local/lib/site_perl

I'm missing /etc/perl but I'm not worried about it.

I looked at the Perl ebuild and it looks like the name of your missing directory is controlled by the $myarch variable. It looks like the ebuild handles this properly and the directory should match @INC (unless mod_perl is screwing with @INC). This in turn comes from CHOST in your make.conf (I think). If you've had past problems with CHOST you might want to just try re-emerging Perl.

Finally, I looked at the mod_perl ebuild and found that it uses the following command to find the directory in question:
Code:
# perl '-V:installvendorarch'                                     
installvendorarch='/usr/lib/perl5/vendor_perl/5.8.7/i686-linux';

On my system, it all looks very consistent. I don't have a definite answer for you but I hope something I've said here is of some use to you. Try the symlink as a quick fix and you can try re-emerging Perl with the correct CHOST in make.conf to fix the problem (if mod_perl is not changing @INC).
Back to top
View user's profile Send private message
vladzz
n00b
n00b


Joined: 08 May 2006
Posts: 6
Location: Adelaide, South Australia

PostPosted: Wed May 24, 2006 5:51 am    Post subject: Reply with quote

Im using a VIA min itx motherboard so my CPU is meant to be set as i586-linux in the make.conf file. I have done this but for some reason during the perl or mod_perl process it seems to set it to a i386-linux. I don't know why. I tried rebuilding perl and that didn't help.

I am wondering if during the emerge process you can override the CHOST flag or in the output of the emerge see what it is using for chost.
_________________
http://www.vladzz.com
Back to top
View user's profile Send private message
BitJam
Advocate
Advocate


Joined: 12 Aug 2003
Posts: 2513
Location: Silver City, NM

PostPosted: Wed May 24, 2006 6:28 am    Post subject: Reply with quote

This is strange. I just did an emerge --sync and an emerge -uDN world and my Perl got updated. In the old ebuild they used the function: get_abi_CHOST to get the CHOST but in the new ebuild they now use simply ${CHOST} so it could be that the 5.8.8 version will fix your problem.

What I don't understand is why the directories use one value and @INC inside of Perl uses a different value. It should have been consistent regardless of how the $myarch variable was created.

Anyway, another package got emerged called perl-cleaner and the perl emerge suggested that I run it. I want to wait until the emerge world gets done before running it. That probably won't happen until tomorrow.
Back to top
View user's profile Send private message
vladzz
n00b
n00b


Joined: 08 May 2006
Posts: 6
Location: Adelaide, South Australia

PostPosted: Wed May 24, 2006 11:23 am    Post subject: Reply with quote

I tried rebuilding perl and then mod_perl and using perl-cleaner and it still looks in the wrong spot for my perl libraries i386-linux not i586-linux.
_________________
http://www.vladzz.com
Back to top
View user's profile Send private message
BitJam
Advocate
Advocate


Joined: 12 Aug 2003
Posts: 2513
Location: Silver City, NM

PostPosted: Wed May 24, 2006 3:51 pm    Post subject: Reply with quote

I think it is time to issue a bug report. There is a link to bugzilla at the bottom of all forum pages.
Back to top
View user's profile Send private message
vladzz
n00b
n00b


Joined: 08 May 2006
Posts: 6
Location: Adelaide, South Australia

PostPosted: Sat May 27, 2006 12:07 pm    Post subject: Reply with quote

Well I had a few issues with this and I think I would a possible solution run the following:

emerge libtool

fix_libtool_files.sh 3.4.5 --oldarch i386-pc-linux-gnu

gcc-config 1

env-update && source /etc/profile

emerge python

then

emerge mod_perl

I think my chost stuff was all stuffed up because I used livecd or something and it didn't recompile all my lib's properly for my i586 processor.
_________________
http://www.vladzz.com
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Networking & Security All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum