> -----Original Message-----
> From: Testbed Support for GridPP member institutes [mailto:TB-
>
> Ewan MacMahon wrote:
> >> [root@farm001 lib]# echo $PYTHONPATH
> >>
>
/opt/glite/lib/python:/opt/lcg/lib/python:/opt/glite/lib/python2.3/site
> -packages/amga
>
> > That's what I see too, and that appears to be a working setup.
> >
> That wasn't the case for me as default. I added
> /gridpath_append "PYTHONPATH" "/opt/lcg/lib/python" /
>
>
> to the grid-env.sh by hand and I did that for only one WN to test.
Oh. Right.
> I see, rest of my WNs (at least 20 of them) don't have "/opt/lcg" in
the
> PYTHONPATH. I'm using 32-bit WN on 64-bit machine.
>
That's what's tripping it up. If you have a look in
/opt/glite/yaim/functions/config-wn you'll see a section that looks like
this (minus my added comments):
if [ "x${OS_ARCH}" = "x64BIT" ]; then # So, we're a 64 bit OS. If not
jump to XXX
if [ -d ${INSTALL_ROOT}/lcg/lib64 ]; then
yaimgridpath_append PYTHONPATH
${INSTALL_ROOT}/lcg/lib64/python
yaimgridpath_append PYTHONPATH ${INSTALL_ROOT}/lcg/lib64
yaimgridpath_append PERL5LIB ${INSTALL_ROOT}/lcg/lib64/perl
# DM
else
yaimlog WARNING "${INSTALL_ROOT}/lcg/lib64 doesn't exist.
PYTHONPATH and PERL5LIB won't contain 64bit libraries"
fi
if [ -d ${INSTALL_ROOT}/glite/lib64 ]; then
yaimgridpath_append PYTHONPATH
${INSTALL_ROOT}/glite/lib64/python
yaimgridpath_append PERL5LIB
${INSTALL_ROOT}/glite/lib64/perl5 # DM
else
yaimlog WARNING "${INSTALL_ROOT}/glite/lib64 doesn't exist.
PYTHONPATH and PERL5LIB won't contain 64bit libraries"
fi
else # XXX This is where we come on a 32 bit OS.
yaimgridpath_append PYTHONPATH ${INSTALL_ROOT}/lcg/lib/python
# DM
yaimgridpath_append PYTHONPATH ${INSTALL_ROOT}/lcg/lib
# DM
yaimgridpath_append PERL5LIB ${INSTALL_ROOT}/lcg/lib/perl
# DM
yaimgridpath_append PERL5LIB ${INSTALL_ROOT}/glite/lib/perl5
# DM
fi
Which says that on a 64 bit OS (like yours, Glasgow's, and RALPPD's)
then it
should check for the existence of the lib64 directories and add them to
the
python path if they exist. If they don't it bitches about it, but
doesn't
add the 32 bit ones instead. If, and only if, the OS is a 32 bit one
then
it drops down to the second half and unconditionally adds the 32 bit
library
directories. ${OS_ARCH}, incidentally is set in
/opt/glite/yaim/functions/utils/detect_platform with the code:
if [ "`uname -i`" = "x86_64" ]; then
export OS_ARCH=64BIT
else
export OS_ARCH=32BIT
fi
If it was me I'd have probably gone for detecting the architecture of
the installed
glite release with something like 'rpm --queryformat "%{ARCH}" -q
glite-WN', but that
assumes you can't install them both simultaneously. I hope that's a
reasonable
assumption.
It looks like they're trying to add support for configuring the native
64 bit
glite WN as well as the 32 bit one, but they've bizarrely assumed that
any machine
with a 64 bit OS will have the 64 bit glite-WN install, and then they've
screwed
that up as well by using completely different logic in the 64 bit case.
As a short
term solution I'd try hacking
/opt/glite/yaim/functions/utils/detect_platform to
unconditionally return OS_ARCH=32BIT if you're using the 32 bit glite
and see what
happens when you re-yaim a machine.
Ewan
|