Por que "ldd/usr/bin/firefox" não lista arquivos de biblioteca?

Por que "ldd/usr/bin/firefox" não lista arquivos de biblioteca?

Eu estava acompanhando um tutorial sobre como descobrir as bibliotecas dependentes de um programa e foi explicado assim:

  1. whereis firefox mostra as pastas onde está instalado, pegue o caminho completo para o binário e
  2. ldd /usr/bin/firefox coloque-o como argumento do comando ldd.

o tutorial também usou o firefox como exemplo e por isso tive certeza de recriá-lo, mas quando digitei:

Responder1

O firefoxexecutável é um script de shell em seu sistema.

Alguns aplicativos empregam um script wrapper que configura o ambiente de execução do aplicativo, possivelmente para permitir uma melhor integração com a versão atual do Unix ou para fornecer maneiras alternativas de executar o aplicativo (novos conjuntos de opções de linha de comando, etc.) que o o aplicativo em si não está fornecendo. Às vezes, um script wrapper é usado para escolher o binário real correto a ser executado com base na maneira como o script foi chamado.

Por exemplo, o compilador C MPI ("Message Passing Interface") nada mais é do que um script wrapper cc(ou qualquer compilador que esteja configurado para usar) que garante que os cabeçalhos MPI estejam no caminho de pesquisa e que a biblioteca MPI esteja vinculada em quando compilar.

Dê uma olhada neste script para ver quais binários ele está chamando e em quais circunstâncias.

Responder2

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

informação relacionada