Die Mühen der Praxis
Soweit die Theorie. In der Praxis begegnet mir oft das Problem unterschiedlicher »USE«
-Flags. Baut ein Server ohne grafische Umgebung die Pakete, passen diese nicht zu einer Desktopmaschine, da die Buildmaschine ohne die »USE«
-Flags »X«
sowie »gtk«
oder »kde«
gearbeitet hat. Das Problem trifft nicht nur Desktop-Anwendungen, sondern auch »gcc«
oder »openssh«
: Erstelle ich die Pakete mit dem »USE«
-Flag und installiere sie auf einem Server, holt der sich das komplette X-Window und GTK+ herein.
Das gleiche Problem ergibt sich bei unterschiedlichen CPUs. Gegen solche ungewollten Abhängigkeiten hilft die Option »--binpkg-respect-use y«
, die prüft, ob die »USE«
-Flags des Binärsystems zum lokalen passen.
Ein Weg, mit Gentoo-Bordmitteln verteilt im Netz Binärpakete zu bauen (Abbildung 1) und sie für mehrere Clients bereitzustellen, sieht so aus: Das »/usr/portage«
-Verzeichnis wird auf einem Server synchron gehalten und per NFS read-only bereitgestellt. Pro CPU-Typ gibt es einen Buildhost, der Binärpakete erstellt und bereitstellt. Letzteres erfolgt in einem lokalen Verzeichnis, das nicht im read-only gemounteten »/usr/portage«
liegt. Per Webserver stellt diese Maschine das Package-Verzeichnis bereit. Gibt es mehrere verschiedene »USE«
-Flag-Typen (Desktops, Webserver), machen diese das Gleiche pro CPU-Typ.
Alle weiteren Hosts eines CPU-Typs haben in der »PORTAGE_BINHOST«
-Variablen die URL-Liste der Buildhosts mit Leerzeichen getrennt und fahren Updates oder Installs immer mit den Optionen »-kg --binpkg-respect-use y«
. Das führt zum Abklappern aller URLs in der Variablen nach passenden Paketen. Nur wenn keines passt, wird selber kompiliert.
Sind bei den CPU-Typen altersschwache dabei, kann ein schneller Host das Bauen übernehmen, indem er die Pakete mittels »ebuild /usr/portage/...buildfile«
erzeugt und ich die Variablen »CHOST,CXXHOST«
und »USE«
passend zum schwächeren Zielsystem setze. Auch »PKGDIR«
muss auf ein eigenes Verzeichnis zeigen, die URL in der Variablen »PORTAGE_BINHOST«
passe ich auf dem schwächeren System an. Die Lizenzen einiger Pakete verbieten die binäre Bereitstellung. Diese Pakete verwenden das Flag »bindist«
, das der Admin aktivieren sollte.
Das gezeigte effizienzsteigernde Vorgehen entbindet den Admin nicht davon, auf allen verwalteten Systemen regelmäßig Updates durchzuführen und danach mittels »etc-update«
die Konfigurationsdateien zu aktualisieren. Werkzeuge wie Cluster-SSH helfen dabei, solche wiederkehrenden Arbeiten zu optimieren. Grundlegende Pakete wie die Glibc bedingen, dass nach der Installation andere Dienste (etwa »vixie-cron«
) neu zu starten sind. Zudem lasse ich ab und zu das Tool Eclean aus dem Gentoolkit laufen, um veraltete Pakete mit »eclean packages«
auf den Buildhosts zu löschen.
Konstantin Agouros
iLDAP-Sicherung mit Versionierung
Ein Open-LDAP-Verzeichnis lässt sich mit dem Befehl »slapcat«
sehr einfach sichern. Ein täglicher Cronjob erledigt das bei mir automatisch. Möchte ich aber Änderungen im Verzeichnis nachvollziehen können, wird es schon etwas komplizierter. Zwar lassen sich die einzelnen Sicherungen miteinander vergleichen, aber das ist Aufgabe eines Versionierungssystems. Folgender Cronjob implementiert dies mit Hilfe von »rcs«
:
45 23 * * * root umask 077 && cd/var/backups && /usr/sbin/slapcat>dump.ldif && (rcsdiff -q dump.ldif;ci -q -l -d -mcron -t-cron dump.ldif)
Der Eintrag »umask«
stellt sicher, dass die später angelegte Datei »dump.ldif«
nur für Root zugänglich ist. Der Aufruf von »rcsdiff«
ist optional und führt dazu, dass ich Änderungen per Mail zugestellt bekomme. Das »ci«
schließlich sichert die neue Revision.
Thilo Uttendorfer
Diesen Artikel als PDF kaufen
Express-Kauf als PDF
Umfang: 3 Heftseiten
Preis € 0,99
(inkl. 19% MwSt.)
Als digitales Abo
Weitere Produkte im Medialinx Shop »
Versandartikel
Onlineartikel
Alle Rezensionen aus dem Linux-Magazin
- Buecher/07 Bücher über 3-D-Programmierung sowie die Sprache Dart
- Buecher/06 Bücher über Map-Reduce und über die Sprache Erlang
- Buecher/05 Bücher über Scala und über Suchmaschinen-Optimierung
- Buecher/04 Bücher über Metasploit sowie über Erlang/OTP
- Buecher/03 Bücher über die LPI-Level-2-Zertifizierung
- Buecher/02 Bücher über Node.js und über nebenläufige Programmierung
- Buecher/01 Bücher über Linux-HA sowie über PHP-Webprogrammierung
- Buecher/12 Bücher über HTML-5-Apps sowie Computer Vision mit Python
- Buecher/11 Bücher über Statistik sowie über C++-Metaprogrammierung
- Buecher/10 Bücher zu PHP-Webbots sowie zur Emacs-Programmierung
Insecurity Bulletin
Im Insecurity Bulletin widmet sich Mark Vogelsberger aktuellen Sicherheitslücken sowie Hintergründen und Security-Grundlagen. mehr...





