Use o ldd comando para mostrar as bibliotecas compartilhadas requeridas por qualquer programa - útil para trabalhar quando há uma dependência ausente. O comando também lista funções e objetos ausentes.
Sintaxe de Comandos do ldd
Observe a sintaxe apropriada para o comando ldd para evitar erros:
ldd OPÇÃO … ARQUIVO …
Use um ou mais dos switches de comando ldd disponíveis, inseridos no OPÇÃO spot no comando acima: --help | imprima esta ajuda e saia --version | imprimir informações de versão e sair -d, --data-relocs | relocações de dados de processo -r, --função-relocs | dados de processo e realocações de funções -u, - não utilizado | imprimir dependências diretas não utilizadas -v, --verbose | imprimir todas as informações Execute o seguinte comando para obter mais informações sobre um programa: $ ldd -v / path / to / program / executable
A saída mostra informações sobre a versão, assim como os caminhos e endereços para as bibliotecas compartilhadas, assim: $ ldd libshared.so linux-vdso.so.1 => (0x00007fff26ac8000) libc.so.6 => /lib/libc.so.6 0x00007ff1df55a000) /lib64/ld-linux-x86-64.so.2 (0x00007ff1dfafe000)
Se o arquivo SO não existir, você poderá encontrar as bibliotecas ausentes usando o seguinte comando: $ ldd -d caminho / para / programa
A saída é semelhante à seguinte: linux-vdso.so.1 (0x00007ffc2936b000) /home/gary/demo/garylib.so => não foundlibc.so.6 => usr / lib / libc.so.6 (0x00007fd0c6259000) /lib64/ld-linux-x86-64.so.2 (0x00007fd0c65fd000)
Nunca execute o comando ldd em um programa não confiável porque o ldd pode realmente executá-lo. Em vez disso, use uma alternativa mais segura que mostre apenas as dependências diretas e não toda a árvore de dependências: $ objdump -p / caminho / para / programa | grep NEEDED Você precisa fornecer o caminho completo para um aplicativo se quiser encontrar suas dependências com o ldd, o que pode ser feito de várias maneiras. Por exemplo, é assim que você encontraria o caminho para o Firefox: $ find / -name firefox
O problema com o comando find, no entanto, é que ele não listará apenas o executável, mas em todos os lugares em que o Firefox estiver localizado, assim: Essa abordagem é um pouco exagerada e você pode precisar usar o comando sudo para elevar seus privilégios, caso contrário, você receberá muitos erros de permissão negada. É muito mais fácil usar o comando whereis para encontrar o caminho de um aplicativo: $ whereis firefox
Desta vez, a saída pode ser assim: / usr / bin / firefox / etc / firefox / usr / lib / firefox Tudo que você precisa fazer agora para encontrar as bibliotecas compartilhadas para o Firefox é digitar o seguinte comando: $ ldd / usr / bin / firefox
A saída do comando será algo assim: linux-vdso.so.1 (0x00007ffff8364000)libpthread.so.0 => /usr/lib/libpthread.so.0 (0x00007feb9917a000)libdl.so.2 => /usr/lib/libdl.so.2 (0x00007feb98f76000)libstdc ++. so.6 => /usr/lib/libstdc++.so.6 (0x00007feb98bf4000)libm.so.6 => /usr/lib/libm.so.6 (0x00007feb988f6000)libgcc_s.so.1 => /usr/lib/libgcc_s.so.1 (0x00007feb986e0000)libc.so.6 => /usr/lib/libc.so.6 (0x00007feb9833c000)/lib64/ld-linux-x86-64.so.2 (0x00007feb99397000) Linux-vdso.so.1 é o nome da biblioteca e o número hexadecimal é o endereço no qual a biblioteca será carregada na memória. Você notará em muitas das outras linhas que o símbolo => é seguido por um caminho. Este é o caminho para o binário físico; o número hexadecimal é o endereço onde a biblioteca será carregada. Como usar o comando ldd
Como encontrar o caminho para um aplicativo




