[OmniOS-discuss] running X application over ssh can't find libraries

Jim Klimov jimklimov at cos.ru
Wed Aug 28 17:22:25 UTC 2013


On 2013-08-28 17:48, Geoff Nordli wrote:
> On 13-08-27 11:30 PM, Paul B. Henson wrote:
>> On Aug 27, 2013, at 10:44 PM, Geoff Nordli <geoffn at gnaa.net> wrote:
>>
>>> /usr/bin/VirtualBox
>>> VirtualBox: supR3HardenedMainGetTrustedMain:
>>> dlopen("/opt/VirtualBox/amd64/VirtualBox.so",) failed: ld.so.1:
>>> VirtualBox: fatal: libXinerama.so.1: open failed: No such file or
>>> directory
> root at stor1:~# file /opt/VirtualBox/VirtualBox
> /opt/VirtualBox/VirtualBox:     ELF 32-bit LSB executable 80386 Version
> 1 [FPU], dynamically linked, not stripped


Well, you're comparing fruits to flies here ;)

# ls -la  /usr/bin/VirtualBox
lrwxrwxrwx   1 root     root          28 Dec 10  2009 
/usr/bin/VirtualBox -> ../../opt/VirtualBox/VBox.sh

The script selects your architecture:
...
CURRENT_ISA=`isainfo -k`
if test "$CURRENT_ISA" = "amd64"; then
     INSTALL_DIR="/opt/VirtualBox/amd64"
else
     INSTALL_DIR="/opt/VirtualBox/i386"
fi
APP=`which $0`
APP=`basename $APP`
case "$APP" in
...

And according to the error coming from the attempted dynamic link of
dlopen("/opt/VirtualBox/amd64/VirtualBox.so",) - this does run your
amd64 binary.

I might only guess that your LD_LIBRARY_PATH with /opt/pkg/lib is
somehow overridden or ignored (not "export"ed?) by subsequent programs.
Try hardcoding it into the VBox.sh script to see if it helps?

LD_LIBRARY_PATH=/opt/pkg/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH

>
> root at stor1:~# file /opt/pkg/lib/libXinerama.so.1.0.0
> /opt/pkg/lib/libXinerama.so.1.0.0:      ELF 64-bit LSB dynamic lib AMD64
> Version 1, dynamically linked, not stripped, no debugging information
> available

Now, against my old Solaris habits, this packaging looks wrong :)
The base directory historically contains the 32-bit stuff (and maybe
multiarch if implemented), and 64-bit things are in their own subdir.
I wonder if an opposite is catered for...

I know there is a tendency to eradicate 32-bitness in a number of
OSes, but legacy 32-bit binaries won't (shouldn't) link with a 64-bit
library and vice-versa. Normally, both should be provided one way or
another.



More information about the OmniOS-discuss mailing list