GNU/Linux >> Linux Esercitazione >  >> Linux

Bash:Nessun file o directory di questo tipo?

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)

Linux
  1. Nessun errore di file o directory durante l'esecuzione di un file binario

  2. Script Bash:pessimo interprete

  3. 'SDL.h file o directory non trovati' durante la compilazione

  4. Come ottengo la directory assoluta di un file in bash?

  5. Errore irreversibile:cuda.h:file o directory non presenti

Come verificare se esiste un file o una directory in Bash

Bash:Scrivi su file

Come verificare se un file o una directory esiste in Bash

Comando sorgente Bash

Come verificare se esiste un file o una directory in Bash Shell

touch:impossibile toccare `foo':File o directory non presenti