Login
Newsletter
Werbung

Do, 6. Dezember 2018, 15:00

Fedora 29

Modularität

Auch wenn die Modularität in der Server-Variante von Fedora bereits in Version 28 aktiv war, ist sie die wohl größte Neuerung in Fedora 29, da sie nun auch in der Workstation-Ausgabe verfügbar ist. Anders als in der Dokumentation behauptet sind die modularen Repositorien offenbar bereits standardmäßig aktiv und müssen nicht mehr explizit eingeschaltet werden.

Modularität bedeutet, dass die Distribution aufgeteilt wurde und nun aus einem Basissystem und einer Reihe von sogenannten Modulen oder Application Streams besteht. Eine Reihe von wichtigen Anwendungen, von Servern bis zu Entwicklungswerkzeugen, liegen in einem der mehreren Dutzend Module vor. Module können aktualisiert werden, während das Basissystem gleich bleibt. Mehr noch, es können mehrere Versionen einer Anwendung zur Verfügung stehen, und die Benutzer können anhand ihrer Bedürfnisse entscheiden, welche Version sie einsetzen.

Module sollen das alte Problem lösen, dass unterschiedliche Benutzer unterschiedliche Ansprüche an die Aktualität der Software haben. Manche wollen immer die allerneueste Version wegen der neuesten Funktionalität oder Fehlerkorrekturen, andere wollen eine Version möglichst lange unverändert nutzen. Es gibt Projekte, die mehr als zweimal im Jahr neue Versionen veröffentlichen, so dass selbst eine für den Server-Einsatz zu schnellebige Distribution wie Fedora nicht die aktuellste Version bereitstellen kann.

Module kann man sich als Sammlung von zusammengehörenden Paketen vorstellen, die eine Version einer Software paketieren. Im einfachsten Fall kann es sich um ein einzelnes RPM-Paket handeln, es können aber auch ziemlich viele sein. Beispielsweise ist Nodejs 8 ein Modul, Nodejs 10 und Nodejs 11 sind weitere Module. In der Regel kann man von verschiedenen Versionen einer Software aber nur eine zugleich installiert haben. Mehrere Versionen gleichzeitig ermöglichten die Software Collections, doch das wird laut dem FAQ so selten benötigt, dass der Aufwand zur Pflege der Software Collections nicht mehr gerechtfertigt ist. Software Collections werden also verschwinden, das Problem mit mehreren Versionen einer Software lässt sich mit virtuellen Maschinen oder Containern lösen.

Die unterschiedlichen Versionen der Module bzw. Appstreams werden Streams genannt. Für Nodejs existieren also die Streams 8, 10 und 11. Innerhalb der Streams werden die Pakete mit Sicherheitsupdates und Korrekturen versorgt. Die Streams sind weiter aufgeteilt in Profile. Profile definieren sozusagen den Lieferumfang der Software. Bei einer Datenbank können das Server und Client sein, bei Nodejs sind es eine Entwickler-, eine Normal- und eine Minimalinstallation.

Einer der wesentlichen Punkte von Modulen ist nun, das es dieselben Module für verschiedene Ausgaben von Fedora (und Red Hat und CentOS) gibt. Hat man beispielsweise Nodejs 8 in Fedora 28 installiert und möchte auf Fedora 29 wechseln, wird dabei automatisch Nodejs beibehalten, obwohl in Fedora 29 Nodejs 10 Standard ist. Die selbst getroffene Auswahl der installierten Module hat Vorrang vor den Einstellungen der Distribution und vor dem Paketmanager.

Die Technologie der Paketerstellung erinnert an den Open Build Server von Suse oder an die Art, wie Dritthersteller vorgehen: Es gibt eine Version des Quellcodes, aus dem Pakete für mehrere Zielsysteme gebaut werden. Im Gegensatz dazu wurde bisher bei Fedora (und den meisten anderen Distributionen) für jede Distibutionsversion eine Kopie des Quellcodes vorgehalten.

Nach soviel Theorie nun ein wenig Praxis. Sind die modularen Repositorien noch nicht aktiv (beispielsweise in Fedora 28), dann aktiviert man sie mit

dnf install fedora-repos-modular

Mit dnf module list listet man die vorhandenen Module auf - es sind zur Zeit noch keine hundert, einige davon sind in zwei oder drei Versionen vertreten. Dass das Konzept nicht auf Server beschränkt ist, sieht man am Auftauchen von Gimp und Skychart in der Liste.

Zur Installation von Modulen gibt es nun im Prinzip zwei Möglichkeiten:

dnf module install <modul>

und

dnf module enable <modul>

Ersteres installiert <modul> direkt, zweiteres ermöglicht, einzelne RPM-Pakete zu installieren, indem man nur den normalen Paketnamen angibt. Die exakte Auswahl, was installiert werden soll, <modul>, ist dabei folgendermaßen aufgebaut:

<name>:<stream>/<profil>

  • <name> ist der Modulname
  • <stream> ist die Version, die auch eine Bezeichnung wie master, latest oder stable sein kann
  • <profil> ist das Profil, z.B. minimal oder default

Man kann nun leicht zu einer anderen Version des Moduls wechseln, indem man das Install-Kommando mit der anderen Version aufruft. Dabei werden auch Abhängigkeiten berücksichtigt. Alle Pakete, die nicht zu einem Modul gehören (also aktuell noch die meisten), gehören zum Basissystem und bilden ein großes virtuelles Modul namens Platform. Module werden unabhängig voneinander aktualisiert. Das Basissystem kann wie bisher mit dnf update aktualisiert werden, die installierten Module muss man jedoch explizit aktualisieren. Dieses Verhalten könnte problematisch sein, wenn die Benutzer nicht mitbekommen, wenn für Module Sicherheitsupdates vorliegen.

Alle für Module anwendbaren Kommandos erhält man mit

dnf module --help

DNF ist derzeit im Prinzip das einzige Werkzeug, das zur Verwaltung von Modulen zur Verfügung steht. Das Team arbeitet aber daran, die Funktionalität in libdnf bereitzustellen, so dass dann auch andere Werkzeuge den Umgang mit Modulen lernen können.

Es sollte nun klar geworden sein, dass die Module keine Konkurrenz zu Flatpak oder Snap darstellen. Es handelt sich lediglich um Sammlungen von RPM-Paketen, die ganz traditionell installiert werden, nur etwas flexibler als bisher. Die Pflege dieser Pakete erfordert aber auch Arbeit, und es bleibt abzuwarten, ob diese Arbeit auf Dauer geleistet werden kann.

Kommentare (Insgesamt: 10 || Alle anzeigen || Kommentieren )
Re[2]: dnf update (Sudo, Fr, 7. Dezember 2018)
Eingehender Test (kamomeumidori, Fr, 7. Dezember 2018)
Re: dnf update (blablabla233, Fr, 7. Dezember 2018)
Re: ...nicht mehr stabil... (hjb, Fr, 7. Dezember 2018)
...nicht mehr stabil... (mleile, Fr, 7. Dezember 2018)
Pro-Linux
Traut euch!
Neue Nachrichten
Werbung