-----BEGIN PGP SIGNED MESSAGE-----
Before going into this let me point out a few things that MAY make a
First, a variable is not global in scope. From the time it is set it
applies only to the single environment in which it was set, and not even
to child environments (sub-shells, etc.) unless exported (which you are
doing). As a result when you write something like setting this messes
up all kinds of things like X and every other application, it makes me
think you’ve set this path somewhere that affects all subsequent
programs (usually not a good idea) instead of in a single startup script
where it can apply to the needed application (like Backup Express).
Normally additions to variables like LD_LIBRARY_PATH or LD_PRELOAD are
set in the script which actually calls the binaries requiring the new
libraries; not always, of course, but in cases where the new libraries
are not system-specific, this is how it should work. Adding more
libraries to somewhere that causes every application in the world to see
this new set of libraries wastes time at best (one more place to check
for stuff) and causes problems like you are seeing in more severe cases.
Next, how do you know it is replacing? I am guessing that it is not
replacing anything, but that LD_LIBRARY_PATH is not set at the time that
you are “appending” to it (normally this variable is not needed for
things since the system has its own location for global things).
Appending to something that is not set at all means your LD_LIBRARY_PATH
will end up looking like ‘:/opt/backupexpress/lib/’ and then have more,
potentially, after that. This is another reason that these types of
variable declarations/instantiations should happen in the startup script
of the application which requires these types of modifications to work.
Anytime you set something explicitly like this, though, any application
that is C-based will look at the variable before checking the system’s
collection of libraries and try to load what it finds, and any
conflicting symbols will cause what you are seeing.
In summary: do not set this globally unless it applies globally (this
definitely does not) and you know it should be applied globally. Feel
free to verify the value of LD_LIBRARY_PATH before you are setting it
with something like an echo to a file, but I’d be willing to bet this is
all a configuration issue. I’m a little surprised that Backup Express
does not ship with a script that correctly sets the LD_LIBRARY_PATH
variable for its own purposes like every other application does.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.18 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
-----END PGP SIGNATURE-----