O que é um arquivo .so?

45

Estou tendo problemas com o Flash no ubuntu e tentaria atualizar para a versão Alpha do Flash 10.1.

O problema é que ele veio como um arquivo .so e não consigo encontrar nenhuma informação sobre o que é isso.

John Moffitt
fonte
1
Outros pôsteres já responderam à sua pergunta; portanto, não adianta adicionar outro texto substancialmente idêntico. Atraio sua atenção para esse bug ( bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/… ), pois talvez seus sintomas sejam semelhantes e você gostaria de dar uma olhada nele.
mac
1
Quase esqueci: na descrição do bug vinculada acima, há também uma solução alternativa que resolve o problema (comentário # 16). Boa sorte!
mac

Respostas:

60

Um arquivo .so é um arquivo de biblioteca compilado. Significa "Objeto Compartilhado" e é análogo a uma DLL do Windows.

Geralmente, os arquivos do pacote os colocam em / lib ou / usr / lib ou em algum lugar semelhante quando instalados. Se você extrair um arquivo .so para um local no seu $ LD_LIBRARY_PATH, um programa que exija a biblioteca poderá usá-lo.

Idealmente, leia a documentação anexa para garantir que ela esteja no local correto.

Se você executar um comando como locate adobe-flashpluginno Terminal, poderá ver algumas bibliotecas existentes com nomes semelhantes.

Andrew Flanagan
fonte
2
A menos que o Ubuntu faça as coisas de maneira completamente diferente de outros vinculadores dinâmicos do Linux, o vinculador dinâmico não pesquisa o caminho ($ PATH), mas pesquisa um conjunto fixo de caminhos, bem como os diretórios especificados em $ LD_LIBRARY_PATH. Veja as páginas de manual para ld.so e ldconfig para mais detalhes.
31420 Chris Cleeland
Isso parece certo - obrigado ... $ LD_LIBRARY_PATH não $ PATH. :
Andrew
1
/ usr / lib e / lib são muito mais comuns que / var / lib. Na verdade, é muito raro colocar uma biblioteca em / var / lib.
Qedi
Desculpe - estava com pressa. :-) eu vou corrigi-lo ...
Andrew Flanagan
Ok .. Vamos imaginar que eu tenho um arquivo .so ... O que eu preciso para "usá-lo"?
Pitto 01/04
10

Existem dois tipos de biblioteca Linux C / C ++ que podem ser criados. Essas são bibliotecas estáticas (.a) e bibliotecas de objetos shard vinculadas dinamicamente (.so)

Quando se trata de (.so) , existe apenas uma forma desta biblioteca, mas pode ser usada de duas maneiras.

1) Vinculado dinamicamente no tempo de execução, mas com reconhecimento estatístico. As bibliotecas devem estar disponíveis durante a fase de compilação / link. Os objetos compartilhados não são incluídos no componente executável, mas estão vinculados à execução.

2) Carregado / descarregado e vinculado dinamicamente durante a execução (por exemplo, plug-in do navegador) usando as funções do sistema do carregador de link dinâmico.

Normalmente, os arquivos do pacote colocam os arquivos ".so" em / lib ou / usr / lib durante a instalação.

Erandi
fonte