GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bash:Keine solche Datei oder Verzeichnis?

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)

Linux
  1. Python – Keine solche Datei oder Verzeichnis, aber ich kann es sehen!?

  2. Mkdir:Verzeichnis kann nicht erstellt werden:Keine solche Datei oder Verzeichnis?

  3. Bash-Skript:schlechter Interpreter

  4. 'SDL.h no such file or directory found' beim Kompilieren

  5. Wie erhalte ich das absolute Verzeichnis einer Datei in Bash?

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

Bash:In Datei schreiben

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in Bash vorhanden ist

Bash-Quellbefehl

So überprüfen Sie, ob eine Datei oder ein Verzeichnis in der Bash-Shell vorhanden ist

touch:kann `foo' nicht berühren:Keine solche Datei oder Verzeichnis