which linux libfuse.so.2?

Gary Aitken freebsd at dreamchaser.org
Thu Feb 11 04:26:02 UTC 2021

I'm still trying to get my head around what's going on here.
I *thought* the /compat/linux stuff was meant to work with fbsd stuff
to some extent...

On 2/9/21 9:03 PM, Pete Wright wrote:
> On 2/9/21 7:23 PM, Gary Aitken wrote:
>> Is there a way to run /compat/linux/usr/bin/ldd to figure out what
>> it is really looking for?  I get the same error whether the symlink
>> for libfuse.so.2 is present or not.  If I try to run the linux ldd
>> I get:
>> $ /compat/linux/usr/bin/ldd
>> PrusaSlicer-2.3.0+linux-x64-202101111322.AppImage bash:
>> /compat/linux/usr/bin/ldd: /usr/bin/bash: bad interpreter: No such
>> file or directory
>> There is no /usr/bin/bash (it's in /usr/local/bin/bash), but there
>> is a /compat/linux/usr/bin/bash.
> you might want to chroot into the /compat/linux environment like this
> for example: $ sudo chroot /compat/linux /usr/bin/bash
> that should make tools like ldd friendlier while you debug.

Not sure if this is friendlier or not :-(:

$ sudo chroot /compat/linux /usr/bin/bash
/$ cd /home/garya/
/home/garya$ ./PrusaSlicer-2.3.0+linux-x64-202101111322.AppImage
dlopen(): error loading libfuse.so.2

AppImages require FUSE to run.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.

/home/garya$ ldd PrusaSlicer-2.3.0+linux-x64-202101111322.AppImage
ELF binary type "3" not known.
/bin/ldd: line 161: /lib/ld-linux.so.2: cannot execute binary file
         not a dynamic executable

So, I exploded the .AppImage, which leaves a subtree squashfs-root with
a script "AppRun" which basically runs usr/bin/prusa-slicer.  So

/home/garya$ cd squashfs-root/
/home/garya/squashfs-root$ ./AppRun
/home/garya/squashfs-root/usr/bin/bin/prusa-slicer: error while loading shared libraries: libGLU.so.1: cannot open shared object file: No such file or directory
/home/garya/squashfs-root$ ldd /usr/bin/prusa-slicer
ELF binary type "3" not known.
/bin/ldd: line 161: /lib/ld-linux.so.2: cannot execute binary file
         not a dynamic executable

I don't understand why bin/ldd is a script in compat/linux, which tries to
execute a shared library, but even if that made sense...

It appears the binary file prusa-slicer is looking for libGLU.so.1, which is
not in the /compat/linux tree.  Am I correct that running with this linux
compatibility mode is restricted to stuff in /compat/linux?

If the .AppImage is supposed to be a self-contained binary executable which
can run on any linux system, then what does "self-contained" mean?  Does it
mean "only self-contained enough that libraries we think are on all linux
systems by default are not included."?

> you also might want to give setting your LD_LIBRARY_PATH when
> executing the command from freebsd to include the linux locations and
> see how far you get: $
> LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/compat/linux/lib:/compat/linux/lib64
> PrusaSlicer...

my default environment has no LD_LIBRARY_PATH; I think that's normal in fbsd,
correct?  In any case, the following still does not find libfuse when run
from fbsd:

$ LD_LIBRARY_PATH=/compat/linux/lib:/compat/linux/lib64:/usr/local/lib:/usr/lib ./PrusaSlicer-2.3.0+linux-x64-202101111322.AppImage
dlopen(): error loading libfuse.so.2

This feels like the whole concept of .AppImage doesn't play well with the
compat/linux environment.

I guess it is time to upgrade to 12.x and try the ubuntu linuxulator...


More information about the freebsd-questions mailing list