Dies ist eine alte Version des Dokuments!
Um ein System sicher zu halten können Jails verwendet werden. Eine Jail kann jedoch nur sicher sein wenn die darin laufende Software alle aktuellen Sicherheitspatches enthält. Um dies sicher zu stellen muss die Jail hin und wieder aktualisiert werden. Dies soll im weiteren Verlauf dieses Artikels erläutert werden. Die Ports werden wie gewohnt aktualisiert.
Wurde eine Jail aus Binärpaketen installier (also nicht selbst kompiliert) so ist das Update mit Binärpaketen ebenso einfach. Vorausgesetzt die Jail liegt in dem Pfad /usr/local/jails/testjail/ so wird im Host-System einfach folgender Befehl abgesetzt:
# freebsd-update -b /usr/local/jails/testjail/ fetch install
Um eine Jail aus den Quellen zu übersetzen und zu aktualisieren ist die Arbeitsweise etwas länger
Um eine vorhandene Jail zu updaten muss sinnvollerweise eine funktionierende Jail vorliegen (die aktualisiert werden soll). Des Weiteren müssen im Verzeichnis /usr/src des Hostsystems die Systemquellen installiert und aktuell sein. Zusätzlich sollte ein Backup aller Daten vorliegen. Vor jeder Aktualisierung einer Jail muss zunächst das Hostsystem aktualisiert sein!
Im Weiteren wird davon ausgegangen, dass die zu aktualisierende Jail im Verzeichnis /usr/local/jails/testjail des Hostsystems abgelegt ist.
Die Aktualisierung erfolgt komplett im Hostsystem! Das heißt alle Befehle werden im Hostsystem ausgeführt. Vor der Aktualisierung sollte die zu aktualisierende Jail beendet werden.
Zunächst wird ins Verzeichnis der aktuellen Systemquellen gewechselt.
# cd /usr/src
Anschließend kann das System neu kompiliert werden (immer noch im Verzeichnis /usr/src). Ist dies schon im Rahmen eines Updates des Hostsystems erfolgt muss kein weiteres Mal kompiliert werden und dieser Punkt kann übersprungen werden. (Ein Host-Update mittels freebsd-update erzeugt keine Neukompilierung der Quellen!)
Ist eine Kompilierung notwendig sollten die alten Daten unter /usr/obj gelöscht werden (hier landen die Ergebnisse der Kompilevorgangs):
# cd /usr/obj # chflags -R noschg * # rm -rf * # cd /usr/src
Dann kann das System kompiliert werden:
# make buildworld
Seit FreeBSD 10.0 ist etcupdate zum migrieren der Konfigurationsdateien in FreeBSD enthalten. Alle älteren Systeme können das Werkzeug aus sysutils/etcupdate installieren.
Wird etcupdate das aller erste Mal verwendet muss es zunächst die aktuellen Konfigurationsdateien einlesen. (Dieser Schritt ist bei späteren Updates nicht mehr notwendig).
# etcupdate extract -D /usr/local/jails/testjail
Liegt ein kompiliertes, aktuelles System vor kann dieses in die Jail installiert werden. Hierzu wird folgender Aufruf verwendet:
# make installworld DESTDIR=/usr/local/jails/testjail
Nach Installation des neuen Systems müssen die Konfigurationsdateien migriert werden.
# etcupdate -D /usr/local/jails/testjail
Nachdem alle Schritte durchgeführt wurden sollte die Jail auf dem aktuellen Stand sein und kann nun neu gestartet werden.