Ich wette, Sie vermissen den dynamischen Linker . Mach einfach ein
readelf --all ./wkhtmltopdf | grep interpreter
Sie sollten eine Ausgabe wie diese erhalten:
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
Es besteht eine hohe Wahrscheinlichkeit, dass Ihrem System der Interpreter fehlt (/lib64/ld-linux-x86-64.so.2
im Beispiel). In diesem Fall würde bash No such file or directory
schreien , genauso wie wenn die Binärdatei selbst fehlt.
Sie können versuchen, ein anderes zu verwenden Linker. Irgendwann kann man Erfolg haben. Mach einfach ein:
/path/to/the/linker /path/to/your/executable
Dieser Befehl:
find /lib* -name ld-linux\*
hilft Ihnen, die Linker auf Ihrem System zu finden. Oder du machst readelf
Befehl auf einen Befehl, der macht Lauf. Es zeigt Ihnen den korrekten, funktionierenden Linker.
ODER , da Sie ein Debian-System ausführen, führen Sie einfach ein
sudo apt-get install wkhtmltopdf
um die native Version des Tools zu installieren :)
In meinem Fall
$ readelf --all ./wkhtmltopdf | grep interpreter # readelf: Displays information about ELF files.
[Requesting program interpreter: /lib/ld-linux.so.2]
Auf einem Rechner, auf dem die ausführbare Datei funktionierte:
$ ls -lah /lib/ld-linux.so.2
lrwxrwxrwx 1 root root 25 Apr 16 2018 /lib/ld-linux.so.2 -> i386-linux-gnu/ld-2.27.so
$ dpkg -S /lib/ld-linux.so.2 # -S, --search filename-search-pattern: Search for a filename from installed packages.
libc6:i386: /lib/ld-linux.so.2
Also, um das Problem zu beheben (Referenz)
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 # GNU C Library: Shared libraries (from apt show)