Subject: OT: perl and rrdtool in a chroot under 2.0
To: None <netbsd-users@netbsd.org>
From: Jeff Rizzo <riz@tastylime.net>
List: netbsd-users
Date: 02/17/2005 16:51:44
This isn't exactly on-topic, but I'm trying to get cricket going with 
thttpd in a chroot as the webserver, on a NetBSD 2.0 system - I've been 
using thttpd in a chroot here for a while, and I'm hoping to be able to 
avoid either ditching the chroot or running apache on this system ... 
anyway, since RRDtool needs perl, I installed the requisite packages 
from pkgsrc in the chroot, and updated libraries and such so that 'ldd' 
on various binaries can find all the shlibs needed.  However, when I try 
to run the 'grapher.cgi' program in cricket, it doesn't want to load 
RRDs.so:

# ./grapher.cgi
Can't load 
'/usr/pkg/lib/perl5/site_perl/5.8.6/i386-netbsd-thread-multi/auto/RRDs/RRDs.so' 
for module RRDs: Service unavailable at 
/usr/pkg/lib/perl5/5.8.6/i386-netbsd-thread-multi/DynaLoader.pm line 230.
 at ./grapher.cgi line 45
Compilation failed in require at ./grapher.cgi line 45.
BEGIN failed--compilation aborted at ./grapher.cgi line 45.
#

I've verified that perl and RRDs.so can find the needed libs:

# /usr/lib/ldd `which perl`
/usr/pkg/bin/perl:
         -lm.0 => /usr/lib/libm.so.0
         -lcrypt.0 => /usr/lib/libcrypt.so.0
         -lpthread.0 => /usr/lib/libpthread.so.0
         -lperl => 
/usr/pkg/lib/perl5/5.8.6/i386-netbsd-thread-multi/CORE/libperl.so
         -lc.12 => /usr/lib/libc.so.12
# /usr/lib/ldd 
/usr/pkg/lib/perl5/site_perl/5.8.6/i386-netbsd-thread-multi/auto/RRDs/RRDs.so
/usr/pkg/lib/perl5/site_perl/5.8.6/i386-netbsd-thread-multi/auto/RRDs/RRDs.so:
         -lcgi.0 => /usr/pkg/lib/libcgi.so.0
         -lm.0 => /usr/lib/libm.so.0
         -ljpeg.62 => /usr/pkg/lib/libjpeg.so.62
         -lz.0 => /usr/lib/libz.so.0
         -lfreetype.6 => /usr/pkg/lib/libfreetype.so.6
         -lpng.3 => /usr/pkg/lib/libpng.so.3
         -lpthread.0 => /usr/lib/libpthread.so.0
         -lgd.2 => /usr/pkg/lib/libgd.so.2
         -lintl.0 => /usr/lib/libintl.so.0
         -lttf.2 => /usr/pkg/lib/libttf.so.2
         -lcrypt.0 => /usr/lib/libcrypt.so.0
         -lperl => 
/usr/pkg/lib/perl5/5.8.6/i386-netbsd-thread-multi/CORE/libperl.so

(Don't ask why I put ldd in /usr/lib.  I don't actually remember!  :)


It's working fine outside the chroot, so I'm probably just missing 
something.  Does anyone have a clue where I should look?

Thanks,

+j