Почему «ldd /usr/bin/firefox» не выводит список файлов библиотек?

Почему «ldd /usr/bin/firefox» не выводит список файлов библиотек?

Я следовал руководству по поиску зависимых библиотек программы, и это было объяснено следующим образом:

  1. whereis firefox показывает папки, куда он установлен, берет полный путь к бинарнику, и
  2. ldd /usr/bin/firefox поместите его в качестве аргумента команды ldd.

В руководстве в качестве примера также использовался Firefox, поэтому я был уверен, что воспроизведу его, но когда я набрал:

решение1

Исполняемый файл firefoxпредставляет собой скрипт оболочки в вашей системе.

Некоторые приложения используют скрипт-обертку, который настраивает среду выполнения для приложения, возможно, для лучшей интеграции с текущей версией Unix или для предоставления альтернативных способов запуска приложения (новые наборы параметров командной строки и т. д.), которые само приложение не предоставляет. Иногда скрипт-обертка используется для выбора правильного фактического двоичного файла для запуска на основе способа вызова этого скрипта.

Например, компилятор C MPI («Message Passing Interface») — это не более чем скрипт-обертка вокруг cc(или любого другого компилятора, на использование которого он настроен), который обеспечивает наличие заголовков MPI в пути поиска и присоединение библиотеки MPI при компиляции.

Взгляните на этот скрипт, чтобы увидеть, какие двоичные файлы он вызывает при каких обстоятельствах.

решение2

$ 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 "$@"

Связанный контент