OpenSuse-Tipps: Abhängigkeiten bei der Software-Installation

Aus LinuxUser 01/2019

OpenSuse-Tipps: Abhängigkeiten bei der Software-Installation

© Gabriela Bertolini, 123RF

Sauber aufgelöst

Das Auflösen von Konflikten bei der Installation distributionsfremder Pakete fällt nicht immer leicht. Wir zeigen, wie Sie solche Programme sauber integrieren.

Fast alle Programmpakete für Linux besitzen sogenannte Abhängigkeiten: Damit eine Anwendung funktioniert, braucht sie in der Regel Hilfsprogramme (Bibliotheken). Die Paketverwaltung der Distribution sorgt dafür, dass die Installation einer neuen Software gleich alle benötigten Abhängigkeiten mit einspielt. Ein entsprechendes Feld informiert Sie über diese automatisch gewählten Pakete (Abbildung 1).

Abbildung 1: Vor der eigentlichen Installation informiert das YaST-Modul <span class="ui-element">Software</span> &uuml;ber die automatisch hinzugef&uuml;gten Pakte zum Aufl&ouml;sen der Abh&auml;ngigkeiten.

Abbildung 1: Vor der eigentlichen Installation informiert das YaST-Modul Software über die automatisch hinzugefügten Pakte zum Auflösen der Abhängigkeiten.

Anwender früher OpenSuse-Versionen ab 2005 plagte eine langsame und unzuverlässige Paketverwaltung. Erst 2008 gelang der Befreiungsschlag mit einem neuen Modul, das die Abhängigkeiten auf Basis eines mathematischen Verfahrens errechnet. Diese technische Grundlage fand 2015 auch in Fedora Eingang. Die Funktion unterstützt Anwender beider Distributionen mit praktischen Vorschlägen zum Lösen von Abhängigkeiten.

Es gibt jedoch Szenarien, in denen das zentrale Konfigurationswerkzeug YaST ein detailliertes Feedback einfordert: Enthält ein Repository eines anderen Anbieters eine neuere Version einer bereits installierten Bibliothek, so erscheint ein Dialog zur Auswahl möglicher Varianten (Abbildung 2). Ein Downgrade eines schon installierten Pakets nimmt YaST ebenfalls nur nach expliziter Rückfrage vor (Abbildung 3). Existieren sehr viele Abhängigkeiten, fallen die Felder im Dialog allerdings sperrig aus.

Abbildung 2: Das Avidemux-Paket aus dem Packman-Repository ben&ouml;tigt Ffmpeg und zugeh&ouml;rige Teilpakete. Packman bietet hier eine neuere Version als das OpenSuse-Repository. YaST bietet alle Varianten an, warnt aber dabei vor dem potenziell gef&auml;hrlichen Wechsel.

Abbildung 2: Das Avidemux-Paket aus dem Packman-Repository benötigt Ffmpeg und zugehörige Teilpakete. Packman bietet hier eine neuere Version als das OpenSuse-Repository. YaST bietet alle Varianten an, warnt aber dabei vor dem potenziell gefährlichen Wechsel.


Abbildung 3: YaST kommt damit zurecht, wenn ein Paket eine &auml;ltere Version einer bereits installierten Bibliothek ben&ouml;tigt. Da Downgrades oft funktionale Verschlechterungen bedeuten, ergibt eine Warnung hier Sinn.

Abbildung 3: YaST kommt damit zurecht, wenn ein Paket eine ältere Version einer bereits installierten Bibliothek benötigt. Da Downgrades oft funktionale Verschlechterungen bedeuten, ergibt eine Warnung hier Sinn.

Kompetent gelöst

Der im Hintergrund arbeitende Dependency-Solver [1] galt lange als Alleinstellungsmerkmal von OpenSuse: Das Debian/Ubuntu-Paketsystem Apt würde Varianten auf Basis eines Downgrades gar nicht erst erkennen. Wegen seiner Leistungsfähigkeit übernahm auch Fedora den OpenSuse-Solver mit Version 22 (Mai 2015).

Die Warnung vor dem Überschreiben eines Systempakets aus externen Quellen hat einen guten Grund: Pakete aus zweifelhaften Quellen führen im Extremfall dazu, dass das System nicht mehr startet. Dennoch ist es möglich, die entsprechende Rückfrage temporär im Menü Optionen mit Anbieterwechsel erlauben auszuschalten.

Die Dialoge mit der Auswahl erscheinen ohnehin nur, wenn Sie zusätzlich zu den offiziellen noch distributionsfremde Repositories hinzugefügt haben: In den Standard-Paketquellen gibt es immer nur eine Version jeder Bibliothek oder jedes Hilfsprogramms. Varianten, die Rückfragen erfordern, treten daher nicht auf.

In Abbildung 2 ganz oben steuert das Packman-Repository [2] eigene Versionen von Ffmpeg und der zugehörigen Bibliotheken bei. Dabei handelt es sich um die neueste Fassung der Pakete, die YaST deswegen als Variante 1 anbietet. Aus dem Text mit Anbieterwechsel und in der Zeile darunter openSUSE –> http://packman.links2linux.de geht hervor, dass die Variante eine bereits installierte, veraltete Version (Variante 2) mit einer extern bereitgestellten Version überschreibt.

Bei Packman handelt es sich um eine vertrauenswürdige Paketquelle: Viele OpenSuse-Anwender ersetzen die aus lizenzrechtlichen Gründen beschnittenen Originalpakete durch die dort angebotenen Vollversionen, um die gängigen Formate für Video und Audio abzuspielen. Sie dürfen also guten Gewissens durchgängig die Variante 1 auswählen.

Als Variante 3 zeigt Abbildung 2 noch Ffmpeg in Version 3.3.4.4-lp150.6.1. Dabei handelt es sich um ein offizielles Paket-Update von OpenSuse, was sich aus dem verwirrenden Text aus dem ausgeschlossenen Repository allerdings kaum erschließt. Sie vermeiden diese zusätzliche Variante am besten dadurch, dass Sie vor der Installation neuer Pakete immer erst alle Updates einspielen.

Das Packman-Repository binden Sie im YaST-Modul Software installieren oder löschen über den Menüpunkt Konfiguration | Repositorys ein. Dort wählen Sie im Dialog Software-Repositories den Punkt hinzufügen und dann die Option Community-Repositorys. Weiter öffnet eine Liste mit von den OpenSuse-Entwicklern vorausgewählten externen Repositories.

Außer Packman stehen dort für Besitzer von Nvidia-Grafikkarten zusätzlich nVidia Graphics Drivers mit funktionierender Hardware-Beschleunigung und die Libdvdcss zum Abspielen von DVDs bereit (Abbildung 4).

Abbildung 4: OpenSuse lagert lizenzrechtlich heikle Pakete in Community-Repositorys aus, die Sie aber mit wenigen Mausklicks einbinden.

Abbildung 4: OpenSuse lagert lizenzrechtlich heikle Pakete in Community-Repositorys aus, die Sie aber mit wenigen Mausklicks einbinden.

Lohnender Tausch

Nach dem Einbinden von Packman für ein multimediataugliches System möchte man in der Regel alle beschnittenen OpenSuse-Pakete direkt durch die vollständige Variante ersetzen, statt sie erst bei der Installation neuer Pakete auszuwählen. Dazu aktivieren Sie oben im Fenster den Reiter Repositorys und wählen in der Liste links im Fenster das Packman Repository aus. Oberhalb der Liste mit den Pakten rechts sehen Sie den Text Systempakete auf die Version in diesem Repository (Packman Repository) umstellen.

Klicken Sie auf das als blauer Link angezeigte Wort Systempakete. Damit merken Sie alle bereits installierten Bibliotheken zum Update mit der Version aus dem Packman-Repository vor. Auch hier müssen Sie sich durch den bereits besprochenen Dialog zum Auflösen von Konflikten klicken und dabei stets die Option mit Anbieterwechsel zu packman.links2linux.de wählen.

Deinstallieren Sie eine Bibliothek, die ein eingerichtetes Programm benötigt, dann entfernt YaST die Programme, deren Abhängigkeiten die Deinstallation verletzen würde, nicht ungefragt. Er bietet stattdessen drei Lösungsmöglichkeiten an (Abbildung 5).

Abbildung 5: Die OpenSuse-Paketverwaltung gestattet es, Abh&auml;ngigkeiten testweise zu verletzen (Punkt&nbsp;<span class="ui-element">3</span>).

Abbildung 5: Die OpenSuse-Paketverwaltung gestattet es, Abhängigkeiten testweise zu verletzen (Punkt 3).

Die erste Variante deinstalliert Programme (hier avidemux3), die nach dem Entfernen von libfaad nicht mehr funktionieren würden. Der zweite Ansatz behält die eigentlich zur Deinstallation gewählte Bibliothek bei, das Paketmanagement verändert das System also überhaupt nicht. Diese Variante entspricht also einem Klick auf Abbrechen.

Als dritte Lösung bietet YaST an, die Abhängigkeiten zu brechen, also eine bestimmte Bibliothek zu deinstallieren und auf sie aufsetzende Programme dennoch im System zu belassen, obwohl sie sehr wahrscheinlich nicht mehr funktionieren. Dies ist selten sinnvoll. Dennoch gestattet es das OpenSuse-Paketmanagement, dass Sie sich selbst davon überzeugen, ob das Programm eventuell trotz nicht erfüllter Abhängigkeiten funktioniert. Das Debian/Ubuntu-Paketmanagement verweigert dagegen die Installation neuer Pakete komplett, wenn im System auch nur eine einzige unaufgelöste Abhängigkeit vorliegt.

Zum Ausprobieren starten Sie das fragliche Programm am besten auf der Kommandozeile und halten nach Fehlermeldungen Ausschau. Erscheint dort die Meldung error while loading shared libraries, bedeutet das, dass das Programm wegen fehlender Abhängigkeiten nicht startet. Selbst wenn das Programm startet, können später noch Abstürze auftreten, die erst der Einsatz einer bestimmten Funktion auslöst.

Effiziente Tipparbeit

Viele Aufgaben erledigen Sie auf der Kommandozeile leichter als per grafischer Oberfläche. Haben Sie zum Beispiel Ffmpeg aus dem Packman-Repository installiert und möchten zur Originalversion von OpenSuse zurückkehren, genügt die Eingabe des folgenden Befehls:

$ zypper install --from repo-oss ffmpeg

Der Begriff repo-oss steht dabei für das Haupt-Repository von OpenSuse. Alle eingebundenen Paketquellen zeigt der Befehl zypper repos an. Dort finden Sie zu jeder Quelle eine Nummer, die Sie (ebenso wie den Alias) als Wert für den Parameter –from verwenden dürfen.

Auch Zypper warnt beim Downgrade auf eine ältere Version und bei einem Wechsel des Anbieters (Abbildung 6). Hier genügt es aber, die Lösung**1 durch einmaliges Drücken von [**1**]+ auszuwählen. Dann zeigt Zypper nochmals eine Zusammenfassung, die Sie mit [J] endgültig bestätigen.

Abbildung 6: Das Werkzeug Zypper entspricht funktional in vielen Aspekten dem YaST-Modul <span class="ui-element">Software</span>, etwa bei den L&ouml;sungsvorschl&auml;gen f&uuml;r Probleme bei Abh&auml;ngigkeiten.

Abbildung 6: Das Werkzeug Zypper entspricht funktional in vielen Aspekten dem YaST-Modul Software, etwa bei den Lösungsvorschlägen für Probleme bei Abhängigkeiten.

Sie haben bereits gesehen, wie einfach Sie ein Community-Repository wie Packman als Quelle für das System hinzufügen. Ging es dort um Pakete, die der Distributor aufgrund von Lizenzen nicht mit auf die Installations-DVD packen mag, so bietet der OpenSuse Build Service [3] taufrische Versionen von Programmen, die es noch nicht in die stabilen Repositorys geschafft haben.

Einen guten Teil der Arbeit erledigen dort freiwillige Helfer, die ein Paket oft bereits wenige Tage nach Erscheinen einer neuen Programmversion bereitstellen. Viele dieser von der Community erstellten Updates fließen nach Durchlaufen von teilweise automatisierten Tests [4] in die stabile Distribution ein.

Wenn Sie nach dem Release eines Programms nicht so lange warten möchten, installieren Sie die aktuellen Build-Service-Versionen. Sie finden passende Pakete über die Suche [5]. Wählen Sie dort in der Trefferliste die gewünschte Software durch einen Klick auf view aus. In Abbildung 7 ist das Gimp, das OpenSuse immer noch in Version 2.8 ausliefert, obwohl die längst erschienene Version 2.10 einen Quantensprung für die Applikation bedeutet.

Abbildung 7: Im OpenSuse Build Service finden Sie brandaktuelle Pakete, von denen einige allerdings ungetestet sind.

Abbildung 7: Im OpenSuse Build Service finden Sie brandaktuelle Pakete, von denen einige allerdings ungetestet sind.

Die Seite enthält eine Schaltfläche Direct Install. Sie führt allerdings lediglich zu jener Programmversion, die den in der Suchmaske ausgewählten OpenSuse-Repositories ohnehin beiliegt. Zu den viel interessanteren, neuen Ausgaben gelangen Sie dagegen über Show Gimp for other Distributions.

Hier erscheint ebenfalls zunächst eine Liste von Distributions- und zugeordneten stabilen Programmversionen. Die Schalter Show experimental packages und Show community packages erlauben aber einen Blick auf neuere Varianten. Bei den experimental packages handelt es sich um noch nicht abschließend getestete, aber vom Distributor selbst herausgegebene Versionen. Die community packages kennzeichnen von Anwendern erstellte Varianten: Der Build-Server ist öffentlich zugänglich, jedermann darf einen Account beantragen.

Als community package steht denn auch die bei Redaktionsschluss neueste von den Gimp-Entwicklern veröffentlichte Version 2.10.8 bereit. Dafür binden Sie über 1 Click install ein zugehöriges Repository per Mausklick ein. Es enthält neben dem Programmpaket gegebenenfalls die für diese neue Programmversion zu aktualisierenden Bibliotheken.

Außerdem halten viele Benutzer des OpenSuse Build Service die Repositories aktuell, sodass das System nach deren Einbinden weitere Updates erhält. Jeder im Bau von Paketen halbwegs Versierte kann überprüfen, ob die Community-Pakete etwa Schadcode enthalten: Der Build-Prozess basiert vollständig auf öffentlich einsehbaren Quellen.

Fazit

Windows-Umsteiger empfinden die mitunter ellenlangen Dialoge, die der OpenSuse-Paketmanager manchmal nach Einbinden zusätzlicher Repositorys anzeigt, wohl eher als Zumutung. Doch das strikte Management von Paketen, das jede Bibliothek im System genau einmal vorhält, bringt mehrere Vorteile: Zum einen spart dieses Vorgehen Plattenplatz. Zum anderen genügt es, bei einem System-Update zum Ausbügeln einer Sicherheitslücke lediglich ein einzelnes betroffenes Paket aufzufrischen. Und nicht zuletzt dauern Aktualisierungen aus diesem Grund selten länger als wenige Minuten. 

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 01/2019 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben