Por que o “ldd / usr / bin / firefox” não lista os arquivos da biblioteca?

0

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

  1. %código% mostra as pastas, onde está instalado, pega o caminho completo para o binário e
  2. whereis firefox coloca como argumento do comando ldd.

o tutorial também usou o firefox como exemplo e, por isso, recriou-o, mas quando eu digitei:

                    
por sharkant 21.05.2017 / 09:38

2 respostas

5

O executável firefox é um script de shell no seu sistema.

Algumas aplicações empregam um script wrapper que configura o ambiente de execução para o aplicativo, possivelmente para permitir uma melhor integração com o sabor atual do Unix, ou para fornecer maneiras alternativas de executar o aplicativo (novos conjuntos de opções de linha de comando, etc. ) que 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 esse script foi chamado.

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

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

    
por 21.05.2017 / 10:01
3
$ 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 "$@"
    
por 21.05.2017 / 09:59