Results 1 to 2 of 2
While reviewing information about chroot, I ran into something called linkage, specifically in reference to legacy and ABI, that they sometimes need to be ran in a chroot because the ...
- 01-30-2010 #1Just Joined!
- Join Date
- Jan 2010
- Posts
- 4
linkage clash?
While reviewing information about chroot, I ran into something called linkage, specifically in reference to legacy and ABI, that they sometimes need to be ran in a chroot because the support libraries might clash in name or linkage with the regular root.
What is a linkage clash? And what would be an example of this?
- 01-30-2010 #2Linux Guru
- Join Date
- Apr 2009
- Location
- I can be found either 40 miles west of Chicago, or in a galaxy far, far away.
- Posts
- 8,970
Most linux applications, as do Windows ones, use shared libraries so many programs can share the same code without bloating their disc image. The OS uses either the PATH environment (Windows) or LD_LIBRARY_PATH environment (Linux) to find the shared libraries. However, sometimes an application will link to a different (incompatible) version of a shared library that has a copy in the normal library path. By default, the application will try to load the default one, not the one it really needs. The results can be "interesting". On Windows this is known as "DLL Hell". On Linux there are a couple of ways to deal with the situation.
1. Prepend the actual location of your special shared libraries to the LD_LIBRARY_PATH environment variable.
2. Use chroot so that the special libraries are resolved in the usual place but locally.
Personally, I prefer option #1 because using chroot can have other undesirable side-effects. I usually use chroot in order to test out an entirely new system software stack, not to constrain users.Sometimes, real fast is almost as good as real time.
Just remember, Semper Gumbi - always be flexible!


Reply With Quote