Was ist eine .so-Datei?

45

Ich habe Probleme mit Flash unter Ubuntu und wollte versuchen, auf die Alpha-Version von Flash 10.1 zu aktualisieren.

Das Problem ist, dass es als .so-Datei geliefert wurde und ich keine Informationen darüber finde, was dies ist.

John Moffitt
quelle
1
Andere Poster haben Ihre Frage bereits beantwortet, daher habe ich keinen Grund, einen weiteren, im Wesentlichen identischen Text hinzuzufügen. Ich mache Sie jedoch auf diesen Fehler aufmerksam ( bugs.launchpad.net/ubuntu/+source/flashplugin-nonfree/+bug/… ), da Ihre Symptome möglicherweise ähnlich sind und Sie gerne einen Blick darauf werfen möchten.
Mac
1
Fast vergessen: In der oben verlinkten Fehlerbeschreibung gibt es auch eine Problemumgehung, die das Problem behebt (Kommentar 16). Viel Glück!
Mac

Antworten:

60

Eine .so-Datei ist eine kompilierte Bibliotheksdatei. Es steht für "Shared Object" und ist analog zu einer Windows-DLL.

Oft werden diese in Paketdateien unter / lib oder / usr / lib oder an einer ähnlichen Stelle abgelegt, wenn sie installiert sind. Wenn Sie eine .so-Datei an einen Speicherort in Ihrem $ LD_LIBRARY_PATH extrahieren, sollte ein Programm, das die Bibliothek benötigt, in der Lage sein, diese zu verwenden.

Lesen Sie im Idealfall die Begleitdokumentation, um sicherzustellen, dass sie sich am richtigen Ort befindet.

Wenn Sie einen Befehl wie locate adobe-flashpluginim Terminal ausführen , werden möglicherweise einige vorhandene Bibliotheken mit ähnlichen Namen angezeigt.

Andrew Flanagan
quelle
2
Sofern Ubuntu nicht völlig anders vorgeht als andere dynamische Linux-Linker, durchsucht der dynamische Linker nicht den Pfad ($ PATH), sondern einen festen Satz von Pfaden sowie die in $ LD_LIBRARY_PATH angegebenen Verzeichnisse. Weitere Informationen finden Sie auf den Manpages für ld.so und ldconfig.
Chris Cleeland
Das klingt richtig - danke ... $ LD_LIBRARY_PATH nicht $ PATH. :-)
Andrew Flanagan
1
/ usr / lib und / lib sind viel häufiger als / var / lib. Eigentlich ist es ziemlich selten, eine Bibliothek in / var / lib abzulegen.
QEDI
Entschuldigung - war in Eile. :-) Ich werde es korrigieren ...
Andrew Flanagan
Ok .. Stellen wir uns vor, ich habe eine .so-Datei ... Was brauche ich, um sie zu "benutzen"?
Pitto
10

Es gibt zwei Linux C / C ++ - Bibliothekstypen, die erstellt werden können. Dies sind statische Bibliotheken (.a) und dynamisch verknüpfte Shard-Objektbibliotheken (.so).

Wenn es um (.so) geht , gibt es nur eine Form dieser Bibliothek, aber sie kann auf zwei Arten verwendet werden.

1) Zur Laufzeit dynamisch verknüpft, jedoch statisch relevant. Die Bibliotheken müssen während der Kompilierungs- / Verknüpfungsphase verfügbar sein. Die gemeinsam genutzten Objekte sind nicht in der ausführbaren Komponente enthalten, sondern an die Ausführung gebunden.

2) Dynamisches Laden / Entladen und Verknüpfen während der Ausführung (dh Browser-Plug-In) unter Verwendung der Systemfunktionen des Dynamic Linking Loader.

Normalerweise werden bei der Installation von Paketdateien ".so" -Dateien in / lib oder / usr / lib abgelegt.

Erandi
quelle