FreeBSD/Ports/readonly

Aus UUGRN
< FreeBSD‎ | Ports
Version vom 26. März 2007, 22:08 Uhr von Rabe (Diskussion | Beiträge) (Problembschreibung und Lösungsansatz. Beispieldaten kommen noch.)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

Default

Die Standardkonfiguration der Ports Infrastruktur ist, dass alle "beweglichen Daten" unterhalb von /usr/ports geschrieben und gespeichert werden. Ansich muss man sich hierbei keine großen Gedanken machen, für den Standardfall ist das gut.

Problem

Hat man allerdings sehr viele Systeme zu betreuen, so wird man schnell merken, dass es sehr aufwendig ist, für jedes einzelne System eigene Ports zu verwalten, schon allein der Speicherhunger durch die tausenden kleinen Dateien und Verzeichnisse und die daraus resultierenden Wartezeiten bei Update, Backup und eigentlich allen Dateisystemoperationen auf den Ports können den Wunsch nach einer zentralen Pflege sinnvoll erscheinen lassen.

Naive Idee

Naiv könnte man jetzt /usr/ports per NFS einfach freigeben und auf allen Systemen verwenden. Wehe dem, wenn auf 2 Maschinen parallel Ports konpiliert werden, womöglich noch mit überlappenden Abhängigkeiten, da kann ein "make clean" auf einem System den laufdenden Buildprozess auf dem anderen System zu einem hässlichen Ende führen. Möglicherweise hat man sogar noch verschiedene Rechnerarchitekturen und zum Schluss versucht ein Port bereits fertig kompilierten Code einer amd64 Architektur auf einem i386-System einzuspielen. Will man alles nicht.

Intelligenterer Ansatz

Man setzt die Ports auf read-only für alle Systeme und zwingt jedes System dazu, erforderliche Schreibzugriffe ausserhalb von /usr/ports durchzuführen. Es gibt allerdings einige Stellen, wo im Standardfall davon ausgegangen wird, dass /usr/ports schreibbar ist. Glücklicherweise gibt es für alles Knobs und Flags.

[...]