Warum listet „ldd /usr/bin/firefox“ keine Bibliotheksdateien auf?

Warum listet „ldd /usr/bin/firefox“ keine Bibliotheksdateien auf?

Ich habe ein Tutorial zum Herausfinden der abhängigen Bibliotheken eines Programms verfolgt und es wurde folgendermaßen erklärt:

  1. whereis firefox zeigt die Ordner, in denen es installiert ist, geben Sie den vollständigen Pfad zur Binärdatei ein und
  2. ldd /usr/bin/firefox Setzen Sie es als Argument des ldd-Befehls ein.

im Tutorial wurde auch Firefox als Beispiel verwendet und deshalb war ich mir sicher, dass ich es nachbauen würde. Als ich jedoch Folgendes eingab:

Antwort1

Die firefoxausführbare Datei ist ein Shell-Skript auf Ihrem System.

Einige Anwendungen verwenden ein Wrapper-Skript, das die Ausführungsumgebung für die Anwendung einrichtet, möglicherweise um eine bessere Integration mit der aktuellen Version von Unix zu ermöglichen oder um alternative Möglichkeiten zum Ausführen der Anwendung bereitzustellen (neue Sätze von Befehlszeilenoptionen usw.), die die Anwendung selbst nicht bietet. Manchmal wird ein Wrapper-Skript verwendet, um basierend auf der Art und Weise, wie das Skript aufgerufen wurde, die richtige tatsächliche Binärdatei zum Ausführen auszuwählen.

Beispielsweise ist der MPI-Compiler („Message Passing Interface“) in C nichts anderes als ein Wrapper-Skript cc(oder welchen Compiler auch immer er verwenden soll), das sicherstellt, dass sich die MPI-Header im Suchpfad befinden und dass die MPI-Bibliothek beim Kompilieren eingebunden wird.

Sehen Sie sich dieses Skript an, um zu sehen, welche Binärdateien es unter welchen Umständen aufruft.

Antwort2

$ file $(which firefox)
/usr/bin/firefox: Bourne-Again shell script, ASCII text executable

$ tail $(which firefox)
done

# Run the browser
debugging=0
if [ $debugging = 1 ]
then
  echo $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"
fi

exec $MOZ_LAUNCHER $script_args $MOZ_PROGRAM "$@"

verwandte Informationen