GPN17:Die manpages.debian.org-Modernisierung

aus dem Wiki des Entropia e.V., CCC Karlsruhe

Ein Vortrag von Michael Stapelberg auf der GPN17.

Ein paar statische Seiten ausliefern klingt einfach. Manpages von einem Betriebssystem auszuliefern klingt wie etwas, was schon etliche Male erledigt wurde. Wenn man jedoch ein bisschen genauer hinschaut, stellt man schnell fest, dass man einige Wochen darauf aufwenden kann, wenn einem die Details wichtig sind.

Als einfaches Beispiel: man kann nicht einfach alle Dateien unter /usr/share/man/ extrahieren. Schließlich enthalten unterschiedliche Debian-Binärpakete Manpages mit dem selben Namen: mysqld(8) ist beispielsweise sowohl in mariadb-server-core-10.0 als auch in mysql-server-core-5.5 enthalten.

Generell, wenn man lediglich Manpages aus Paketen extrahiert, macht man es sich zu einfach. Beliebte Pakete wie vi(m) oder ganeti benutzen das Konzept der „slave alternative“-Symlinks, damit die Manpage /usr/share/man/man1/vi.1 auch auf genau die derzeit bevorzugte/installierte Variante von vi (oder Version von ganeti) zeigt. Diese Indirektion wird zur Installationszeit (!) von einem shell-Script (!) aufgesetzt.

Zu diesem inhärent schwierigen Datensatz kommen hohe Ansprüche an moderne Websites und betagte Hardware als Laufzeitumgebung hinzu, und schon steht man vor einem interessanten Problem.

Kommt zu meinem Vortrag für haufenweise interessante Details und Fun-Facts!

Links