[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Appimage: cannot run binary file
From: |
Tobias Geerinckx-Rice |
Subject: |
Re: Appimage: cannot run binary file |
Date: |
Wed, 10 Feb 2021 19:59:17 +0100 |
Bonjour Christophe!
Christophe Pisteur 写道:
bash: .:
/home/christophe/Téléchargements/FreeCAD_0.19-23578-Linux-
Conda_glibc2.12-x86_64.AppImage : ne peut exécuter le fichier
binaire
This unclear error message means that the dynamic linker/loader
was not found.
It's an absolute file name, hard-coded in the executable. In this
case:
λ file FreeCAD_0.19-23578-Linux-Conda_glibc2.12-x86_64.AppImage
...ELF 64-bit LSB executable, x86-64, version 1 (SYSV)...
...dynamically linked, interpreter
/lib64/ld-linux-x86-64.so.2...
^^^^^^^^^^^^^^^^^^^^^^^^^^^
Like Flatpaks (and all binaries, really), AppImages are
distro-specific: they expect this file to exist at this exact
location or they won't be able to start. It won't run on my Guix
System even though I have a compatibility symlink in /lib:
(service special-files-service-type
`(("/lib/ld-linux-x86-64.so.2"
,(file-append (canonical-package glibc)
"/lib/ld-linux-x86-64.so.2"))
...))
After adding one for /lib64 as well, this happens:
λ ./FreeCAD_0.19-23578-Linux-Conda_glibc2.12-x86_64.AppImage
...: error while loading shared libraries: libz.so.1: cannot
open
shared object file: No such file or directory
Of course: there is no libz.so in /lib{,64} either!
Rather than add more compatibility links for every library and its
sister, we create a Guix environment and hackily point our
AppImage towards it:
λ guix environment --ad-hoc zlib fuse -- bash -c \
'LD_LIBRARY_PATH=$GUIX_ENVIRONMENT/lib \
./FreeCAD_0.19-23578-Linux-Conda_glibc2.12-x86_64.AppImage'
fusermount: mounting over filesystem type 0xca451a4e is
forbidden
Cannot mount AppImage, please check your FUSE setup.
You might still be able to extract the contents of this AppImage
if you run it with the --appimage-extract option.
See https://github.com/AppImage/AppImageKit/wiki/FUSE
for more information
open dir error: No such file or directory
At this point I got a disgusting hunch:
~/linux λ grep -r 0xca451a4e *
... #define BCACHEFS_STATFS_MAGIC 0xca451a4e
A hard-coded file system whitelist[0]! What could go wrong?
You'll probably get a different error on your system; it might
even work. You could try extracting it:
/tmp/squashfs-root λ ./AppRun
bash: ./AppRun: /bin/bash: bad interpreter: No such file or
directory
/tmp/squashfs-root λ bash ./AppRun
.../bin/freecad: error while loading shared libraries:
libGL.so.1:
cannot open shared object file: No such file or directory
And so on until you have fun. Much cross-distro; very universal.
I tried adding mesa; didn't work.
Instead, I strongly recommend writing your own Guix package (using
inherit) or looking for a less byzantine download format.
(= cannot run binary file).
(Tip: you can submit ‘normalised’ bug reports by setting
LC_ALL=C.)
Good luck,
T G-R
[0]: I don't know if it's in AppImage of FUSE, nor do I much care.
signature.asc
Description: PGP signature
- Appimage: cannot run binary file, Christophe Pisteur, 2021/02/10
- Re: Appimage: cannot run binary file,
Tobias Geerinckx-Rice <=
- Re: Appimage: cannot run binary file, Christophe Pisteur, 2021/02/11
- Re: Appimage: cannot run binary file, raingloom, 2021/02/11
- Re: Appimage: cannot run binary file, Christophe Pisteur, 2021/02/11
- Re: Appimage: cannot run binary file, Sergiu Ivanov, 2021/02/11
- Re: Appimage: cannot run binary file, Christophe Pisteur, 2021/02/11
- Re: Appimage: cannot run binary file, raingloom, 2021/02/12
- Re: Appimage: cannot run binary file, Efraim Flashner, 2021/02/15