claim.gif
Linux Magazin Linux User Easy Linux Ubuntu User International Linux Community
Erschienen in EasyLinux 06/2003   »   Ausgabe bestellen

Warum sich manche Programme nur "im Team" installieren lassen

Netz der Abhängigkeiten

von Hans-Georg Eßer


Linux-Software-Archive liegen im RPM-Paketformat vor und sollen die Software-Installation einheitlich und leicht machen. Manchmal scheint das Gegenteil zu passieren, und ein Programm beschwert sich, dass irgend etwas fehlt. Was dort vor sich geht, erklärt dieser Artikel.

Es ist ein kleiner Ausflug in die Vorgehensweise des Betriebssystems bei einem Programmstart notwendig um zu erklären, warum manche Software-Pakete sich scheinbar nicht installieren lassen wollen: Programme bestehen aus einer Ansammlung von Befehlen, die der Prozessor in Ihrem Rechner verstehen und abarbeiten kann. Für viele Standardaufgaben (etwa: einen Datei-Öffnen-Dialog anzeigen) gibt es vorgefertigte Programmschnipsel, die immer gleich sind; darum erscheinen gleichartige Fenster, wenn Sie aus der KDE-Textverarbeitung KWord oder aus dem KDE-Editor Kate heraus eine Datei öffnen wollen.

Bibliotheken

Würde nun in jedes Programm die Funktionalität "Datei öffnen" separat integriert, hätten Sie bei gleichzeitiger Benutzung mehrerer KDE-Programme diese Programmfunktion "Datei öffnen" auch mehrfach im Speicher. Da dies für ganz viele Programmteile zutrifft, wäre das eine erhebliche Hauptspeicherverschwendung, und deswegen lagern moderne Betriebssysteme solche Standardaufgaben in so genannte Bibliotheken aus. Diese Bibliotheken liegen unter Linux z. B. in den Verzeichnissen /lib und /usr/lib/ und sind Programmteile, die bei Bedarf von anderen Programmen hinzugeladen werden.

Da sich viele Programme die gleichen Bibliotheken teilen, wandern letztere in separate Software-Pakete. Hier gibt es einen elementaren Unterschied zu Windows: Die meisten Windows-Programm-Installer bringen alle benötigten Bibliotheken gleich mit. Wenn Sie bei einem solchen Windows-Programm die Setup-Routine durchlaufen lassen, kopiert es auch einen ganzen Haufen .DLL-Dateien (so heißen unter Windows die Bibliotheken) in das Windows-System-Verzeichnis (meist c:\windows\system\). Mit jeder Programminstallation können bei Windows also potentiell wichtige Bibliotheken durch andere Versionen überschrieben werden, was gelegentlich dazu führt, dass ältere Programme plötzlich nicht mehr laufen.

Linux geht hier den sicheren Weg: Bibliotheken sind nicht Teil der Programmpakete, sondern gehören jeweils in separate Pakete. Innerhalb der einzelnen Pakete können so genannte Abhängigkeiten definiert werden, mit denen ein Paket z. B. festlegen kann, welche Bibliothekspakete vorhanden sein müssen, damit es läuft.

Abhängigkeiten

Solche Abhängigkeiten können die Installation eines Programmes verhindern, falls benötigte Zusatzpakete nicht vorhanden sind. Man spricht dann von einer "ungelösten" Abhängigkeit. Solange Sie nur Programmpakete installieren, die Teil Ihrer Linux-Distribution sind, gibt es keine Probleme, weil das jeweilige Konfigurationsprogramm (bei SuSE etwa YaST) die Abhängigkeiten der Pakete kennt und automatisch alles mitinstalliert, was noch benötigt wird.

Verwenden Sie aber ein Fremdpaket, fehlen die Informationen. Wenn jetzt eine ungelöste Abhängigkeit besteht, weiß der Installer nicht, woher er die fehlenden Bibliotheken nehmen soll, und verweigert die Installation.

Manche Fremdpakete lassen sich nicht installieren, obwohl alle benötigten Bibliotheken vorhanden sind: Dann liegen diese in einer unpassenden Version vor. Das ist aber in der Regel kein Hinweis auf ein Problem mit der Bibliothek, sondern mit dem Fremdpaket: Es passt einfach nicht zur eingesetzten Linux-Distributionsversion. In einem solchen Fall hilft nur, die Suche nach einem passenden Fremdpaket fortzusetzen. (hge)

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.

Druckerfreundliche Version | Feedback zu dieser Seite | Datenschutz | © 2012 Linux New Media AG | Last modified: 2007-01-25 16:15

[Linux-Magazin] [LinuxUser] [Linux-Community] [Admin-Magazin] [Ubuntu User] [Smart Developer] [Linux Events] [Linux Magazine] [Ubuntu User] [Admin Magazine] [Smart Developer] [Linux Magazine Poland] [Linux Community Poland] [Linux Magazine Brasil] [Linux Magazine Spain] [Linux Technical Review]