[Shipwright] more problems with shipwright-*-wrapper on solaris
Andy Cobaugh
phalenor at gmail.com
Wed Jun 30 15:34:48 EDT 2010
2 problems:
1) This line doesn't populate LINK as expected:
test -h $0 && LINK=`ls -l $0 | awk -F\> '{print $NF}'
it ends up with a space in fron, like this
" ../etc/shipwright-script-wrapper"
which of course breaks things further down. To fix this, I've done
something like this:
test -h $0 && LINK=`ls -l $0 | awk -F\> '{print $NF}' | sed -e 's/^ //'`
What I did when we originally saw this on our current installation was use
the readlink provided with in /opt/sfw, but we can't rely on /opt/sfw
(provided by the Solaris Companion CD) to exist in the general case.
2) With 'real' /bin/sh, variables must be export'd in order for
sub-processes to see them, so something like this won't work on solaris:
PERL5LIB=foo ./myProgram.pl
As a result, solaris doesn't get the correct PERL5LIB set up for it, among
other things. To fix this, I've made the env variable declarations on
separate lines, with a final export line, like this:
export PATH PERL5LIB LD_LIBRARY_PATH DYLD_LIBRARY_PATH
followed by the exec line.
Most likely, /bin/sh on your system is /bin/bash, which would explain why
inlining the variable assignments works.
I'm not sure how this is working with our current installation of RT on
solaris (mailservers are solaris, so they just need rt-mailgate, but even
rt-mailgate needs things like LWP::UserAgent). I bet I never relocated the
vessel after building it, so the builtin @INC hasall the right paths.
--andy
More information about the Shipwright
mailing list