Scommetto che ti manca il linker dinamico . Basta fare un
readelf --all ./wkhtmltopdf | grep interpreter
Dovresti ottenere un output come questo:
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
Ci sono alte possibilità che nel tuo sistema manchi l'interprete (/lib64/ld-linux-x86-64.so.2
nell'esempio). In questo caso bash urlerebbe No such file or directory
, proprio come quando manca il binario stesso.
Puoi provare a usare un differente linker. A volte puoi avere successo. Basta fare un:
/path/to/the/linker /path/to/your/executable
Questo comando:
find /lib* -name ld-linux\*
ti aiuterà a trovare i linker sul tuo sistema. Oppure puoi fare il readelf
comando su qualche comando che fa correre. Ti mostrerà il linker corretto e funzionante.
OPPURE , dato che stai utilizzando un sistema Debian, fai semplicemente un
sudo apt-get install wkhtmltopdf
per installare la versione nativa dello strumento :)
Nel mio caso
$ readelf --all ./wkhtmltopdf | grep interpreter # readelf: Displays information about ELF files.
[Requesting program interpreter: /lib/ld-linux.so.2]
Su una macchina in cui l'eseguibile funzionava:
$ 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
Quindi, per risolvere il problema (riferimento)
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 # GNU C Library: Shared libraries (from apt show)