LD_LIBRARY_PATH mystery

Trying to solve a mystery and putting it here, in case anyone has wisdom… in Ling 567 we’re using the Ubuntu+LKB VB appliance and for most folks, adding these lines to the .bashrc is working just fine:

export DELPHINHOME=~/delphin
export LD_LIBRARY_PATH=$DELPHINHOME/lkb_fos/lib/linux.x86.64:$LD_LIBRARY_PATH

(without them, when we start the LKB, we get an error that asks about the $LD_LIBRARY_PATH and then [incr tsdb()] doesn’t work.)

For one student, though, whose host OS is Windows (not that that should matter), having those lines in .bashrc isn’t enough … the error still appears. This is despite the fact that echo $LD_LIBRARY_PATH shows what we’d want.

Any guesses?

Thanks!
Emily

Incidentally, the student with this problem can start [incr tsdb()] and set the skeletons root, but then sees [NIL items] for all of her profiles…

I am not sure, but — try .bash_profile instead of .bashrc ? I think I’ve seen a problem similar to this which was resolved this way (between OSX and Ubuntu though, not Windows).

Thanks, Olga. We actually had to go the other direction! Putting this in .bash_profile wasn’t working for anyone; .bashrc works for most.

@ebender Are all the students starting up the LKB in the same way? Are they all using the same unix shell? The unix environment is often set up differently in an emacs window compared to an interactive shell in a terminal window. Also, it’s not guaranteed that invoking emacs from a terminal window will carry forward the terminal shell’s environment.

More technically, which shell initialisation files are executed depends on whether the shell is a ‘login’ shell or not. I ran into this issue a couple of years ago on MacOS, since different builds of emacs behave differently, and you don’t get a login environment if you start an application by double-clicking. There are many combinations of shell, ways of starting the shell, emacs builds and ways of starting emacs - so I don’t think a universal solution is possible.

Probably the best way forwards is to invoke LKB-FOS through a shell script, as is done in the logon LKB setup. I was trying to avoid that to keep things simple. But it might be the only way out.

Just to close the loop here, now that we’ve got it working for everyone and for future reference, we found that:

  1. In one case, the problem was the student has mis-transcribed the $LD_LIBRARY_PATH (with an extra ‘x’ in it). Note to self: always encourage copy-paste for this kind of operation :slight_smile:
  2. With our current VB set up, there seems to be a difference between invoking a terminal within the VB’s own GUI and ssh-ing in in terms of whether .bash_profile gets read.