"ldd /usr/bin/firefox"가 라이브러리 파일을 나열하지 않는 이유는 무엇입니까?

"ldd /usr/bin/firefox"가 라이브러리 파일을 나열하지 않는 이유는 무엇입니까?

아래에 설명된 프로그램의 종속 라이브러리를 찾는 방법에 대한 튜토리얼을 따르고 있습니다.

  1. whereis firefox 설치된 폴더를 표시하고 바이너리의 전체 경로를 얻은 다음
  2. ldd /usr/bin/firefox 이를 ldd 명령에 대한 인수로 제공하십시오.

이 튜토리얼에서는 Firefox도 예시로 사용하므로 다시 만들고 싶지만 다음과 같이 입력합니다.

답변1

실행 파일은 firefox시스템의 쉘 스크립트입니다.

일부 응용 프로그램은 래퍼 스크립트를 사용하여 응용 프로그램의 실행 환경을 설정합니다. 아마도 현재 Unix 버전과 더 잘 통합하거나 응용 프로그램을 실행하는 대체 방법(새로운 명령줄 옵션 세트 등)을 제공할 수 있습니다. 앱 자체에서는 제공되지 않습니다. 때때로 래퍼 스크립트는 스크립트 호출 방법에 따라 실행할 올바른 실제 바이너리를 선택하는 데 사용됩니다.

예를 들어, MPI("메시지 전달 인터페이스") C 컴파일러는 ccMPI 헤더가 검색 경로에 있고 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 "$@"

관련 정보