Apuesto a que echas de menos enlazador dinámico . Solo haz un
readelf --all ./wkhtmltopdf | grep interpreter
Debería obtener una salida como esta:
[Requesting program interpreter: /lib64/ld-linux-x86-64.so.2]
Hay muchas posibilidades de que su sistema carezca del intérprete (/lib64/ld-linux-x86-64.so.2
en el ejemplo). En este caso bash gritaría No such file or directory
, como cuando falta el binario.
Puedes intentar usar un diferente enlazador En algún momento puedes tener éxito. Solo haz un:
/path/to/the/linker /path/to/your/executable
Este comando:
find /lib* -name ld-linux\*
le ayudará a encontrar los enlazadores en su sistema. O puedes hacer el readelf
comando en algún comando que hace correr. Le mostrará el enlazador correcto y en funcionamiento.
O , ya que está ejecutando el sistema Debian, simplemente haga un
sudo apt-get install wkhtmltopdf
para instalar la versión nativa de la herramienta :)
En mi caso
$ readelf --all ./wkhtmltopdf | grep interpreter # readelf: Displays information about ELF files.
[Requesting program interpreter: /lib/ld-linux.so.2]
En una máquina donde funcionaba el ejecutable:
$ 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
Entonces, para solucionar el problema (referencia)
sudo dpkg --add-architecture i386
sudo apt update
sudo apt install libc6:i386 # GNU C Library: Shared libraries (from apt show)