¿Que es un archivo .so?

45

Tengo problemas con Flash en ubuntu e iba a intentar actualizar a la versión Alpha de Flash 10.1.

El problema es que vino como un archivo .so, y no puedo encontrar ninguna información sobre qué es esto.

John Moffitt
fuente
1
Otro póster ya ha respondido su pregunta, por lo que no tiene sentido agregar otro texto sustancialmente idéntico. Sin embargo, atraigo su atención sobre este error ( bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/… ) ya que quizás sus síntomas son similares y le gustaría echar un vistazo allí.
mac
1
Casi lo olvido: en la descripción del error vinculada anteriormente, también hay una solución que resuelve el problema (comentario # 16). ¡La mejor de las suertes!
mac

Respuestas:

60

Un archivo .so es un archivo de biblioteca compilado. Significa "Objeto compartido" y es análogo a una DLL de Windows.

A menudo, los archivos de paquete los colocarán en / lib o / usr / lib o en algún lugar similar cuando estén instalados. Si extrae un archivo .so a una ubicación en su $ LD_LIBRARY_PATH, un programa que requiera la biblioteca debería poder usarlo.

Idealmente, lea la documentación adjunta para asegurarse de que esté en la ubicación correcta.

Si ejecuta un comando como locate adobe-flashplugindesde la Terminal, puede ver algunas bibliotecas existentes con nombres similares.

Andrew Flanagan
fuente
2
A menos que Ubuntu haga las cosas de manera completamente diferente a otros enlazadores dinámicos de Linux, el enlazador dinámico no busca la ruta ($ PATH), sino que busca un conjunto fijo de rutas, así como los directorios especificados en $ LD_LIBRARY_PATH. Consulte las páginas de manual de ld.so y ldconfig para obtener más detalles.
Chris Cleeland el
Eso suena bien, gracias ... $ LD_LIBRARY_PATH no $ PATH. :-)
Andrew Flanagan el
1
/ usr / lib y / lib son mucho más comunes que / var / lib. En realidad, es bastante raro poner una biblioteca en / var / lib.
qedi
Lo siento, estaba apurado. :-) Lo corregiré ...
Andrew Flanagan
Ok .. Imaginemos que tengo un archivo .so ... ¿Qué necesito para "usarlo"?
Pitto
10

Hay dos tipos de bibliotecas de Linux C / C ++ que se pueden crear. Esas son las bibliotecas estáticas (.a) y las bibliotecas de objetos de fragmentos vinculados dinámicamente (.so)

Cuando se trata de (.so) , solo hay una forma de esta biblioteca, pero se puede usar de dos maneras.

1) Vinculado dinámicamente en tiempo de ejecución pero estáticamente consciente. Las bibliotecas deben estar disponibles durante la fase de compilación / enlace. Los objetos compartidos no están incluidos en el componente ejecutable pero están vinculados a la ejecución.

2) Cargado / descargado dinámicamente y vinculado durante la ejecución (es decir, el complemento del navegador) utilizando las funciones del sistema del cargador de enlace dinámico.

Normalmente, los archivos de paquete colocarán archivos ".so" en / lib o / usr / lib durante la instalación.

Erandi
fuente