I've been through dependency issues, but, finally, have my application running. The problem is I need to force install of some old libraries with dpkg to achieve this, which, in turn, breaks my package manager (apt-get).If I can find what .sos are called on load I can extract them (alien + tar) and symlink them within the working directory of this application.Thus, keeping my package manager and achieving what I need. I wish multiarch did what it was meant to so I wouldn't be here in the first place :(
Is there a way to monitor the Shareable Objects (.so) loaded on launch of a specific application?
apt;kernel modules;load;dynamic loading
For the majority of cases, you can use ldd to determine the libraries an executable is linked against.For example:# ldd /usr/bin/xz  linux-vdso.so.1 (0x00007fff06358000)  liblzma.so.5 => /lib64/liblzma.so.5 (0x00007fd6a1358000)  libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fd6a1138000)  libc.so.6 => /lib64/libc.so.6 (0x00007fd6a0d88000)  /lib64/ld-linux-x86-64.so.2 (0x00007fd6a1590000)Now if I wanted to I could copy these libs into a custom path. In your case it sounds like you plan to put them in the application's own directory. However you have to tell the system to look there since looking in the application's directory is not a default behavior when loading libraries. And since the loading happens before the app starts, the app can't change that behavior.To accomplish this you need to use LD_LIBRARY_PATH. Just do LD_LIBRARY_PATH=/foo/bar /foo/bar/appname. This will tell ld-linux to look in /foo/bar for the libs.Exception:Note that ldd will only show libs which the application is linked against. It is also possible for programs to load libraries at runtime. This isn't very common behavior, and is mostly used as a kind of plugin system, or to keep the memory footprint low by not loading libs unless they're truly needed (perhaps as determined by configuration).