5.1 Guix-Profile in der Praxis
Guix gibt uns eine sehr nützliche Funktionalität, die Neuankömmlingen sehr
fremd sein dürfte: Profile. Mit ihnen kann man Paketinstallationen
zusammenfassen und jeder Benutzer desselben Systems kann so viele davon
anlegen, wie sie oder er möchte.
Ob Sie ein Entwickler sind oder nicht, Sie dürften feststellen, dass mehrere
Profile ein mächtiges Werkzeug sind, das Sie flexibler macht. Zwar ist es
ein gewisser Paradigmenwechsel verglichen mit traditioneller
Paketverwaltung, doch sind sie sehr praktisch, sobald man im Umgang mit
ihnen den Dreh ’raushat.
Wenn Ihnen Pythons ‘virtualenv’ vertraut ist, können Sie sich ein
Profil als eine Art universelles ‘virtualenv’ vorstellen, das jede Art
von Software enthalten kann und nicht nur Python-Software. Des Weiteren sind
Profile selbstversorgend: Sie schließen alle Laufzeitabhängigkeiten ein und
garantieren somit, dass alle Programme innerhalb eines Profils stets zu
jeder Zeit funktionieren werden.
Mehrere Profile bieten viele Vorteile:
- Klare semantische Trennung der verschiedenen Pakete, die ein Nutzer für
verschiedene Kontexte braucht.
- Mehrere Profile können in der Umgebung verfügbar gemacht werden, entweder
beim Anmelden oder in einer eigenen Shell.
- Profile können bei Bedarf geladen werden. Zum Beispiel kann der Nutzer
mehrere Unter-Shells benutzen, von denen jede ein anderes Profil ausführt.
- Isolierung: Programme aus dem einen Profil werden keine Programme aus dem
anderen benutzen, und der Nutzer kann sogar verschiedene Versionen desselben
Programms in die zwei Profile installieren, ohne dass es zu Konflikten
kommt.
- Deduplizierung: Profile teilen sich Abhängigkeiten, wenn sie genau gleich
sind. Dadurch sind mehrere Profile speichereffizient.
- Reproduzierbar: Wenn man dafür deklarative Manifeste benutzt, kann ein
Profil allein durch den bei dessen Einrichtung aktiven Guix-Commit eindeutig
spezifiziert werden. Das bedeutet, dass man genau dasselbe Profil
jederzeit und überall einrichten kann und man dafür nur die
Commit-Informationen braucht. Siehe den Abschnitt über Reproduzierbare Profile.
- Leichtere Aktualisierung und Wartung: Mit mehreren Profilen ist es ein
Leichtes, eine Liste von Paketen zur Hand zu haben und Aktualisierungen
völlig reibungslos ablaufen zu lassen.
Konkret wären diese hier typische Profile:
- Die Abhängigkeiten des Projekts, an dem Sie arbeiten.
- Die Bibliotheken Ihrer Lieblingsprogrammiersprache.
- Programme nur für Laptops (wie ‘powertop’), für die Sie auf einem
„Desktop“-Rechner keine Verwendung haben.
- TeXlive (das kann wirklich praktisch sein, wenn Sie nur ein einziges
Paket für dieses eine Dokument installieren müssen, das Ihnen jemand in
einer E-Mail geschickt hat).
- Spiele.
Tauchen wir ein in deren Einrichtung!