Navigationslinks �berspringen | |
Druckansicht beenden | |
Oracle Solaris 10 8/11 Installationshandbuch: Solaris Live Upgrade und Planung von Upgrades |
Teil I Ausführen eines Upgrades mit Solaris Live Upgrade
1. Informationen zur Planung einer Solaris-Installation
2. Solaris Live Upgrade (Übersicht)
3. Solaris Live Upgrade (Planung)
4. Erstellen einer Boot-Umgebung mit Solaris Live Upgrade (Vorgehen)
5. Ausführen eines Upgrades mit Solaris Live Upgrade (Vorgehen)
6. Wiederherstellen nach Fehler: Zurückgreifen auf die ursprüngliche Boot-Umgebung (Vorgehen)
7. Verwalten von Solaris Live Upgrade-Boot-Umgebungen (Vorgehen)
9. Solaris Live Upgrade (Beispiele)
10. Solaris Live Upgrade (Befehlsreferenz)
11. Solaris Live Upgrade und ZFS (Überblick)
12. Solaris Live Upgrade für ZFS (Planung)
13. Erstellen einer Boot-Umgebung für ZFS-Root-Pools
14. Solaris Live Upgrade für ZFS mit installierten nicht-globalen Zonen
B. Zusätzliche SVR4-Packaging-Anforderungen (Referenz)
Verhindern einer Modifikation des aktuellen BS
Verwenden des Befehls pkgadd -R
Unterschiede zwischen $PKG_INSTALL_ROOT und $BASEDIR - Übersicht
Richtlinien zum Schreiben von Skripten
Verhindern der Benutzerinteraktion bei Installation oder Upgrade
Einstellen von Package-Parametern für Zonen
C. Verwenden des Patch Analyzers beim Durchführen von Upgrades (Vorgehen)
Wenn Sie die in diesem Abschnitt beschriebenen Anforderungen erfüllen, bleibt das aktuell ausgeführte BS unverändert.
Für eine erfolgreiche Installation eines Betriebssystems müssen die Packages alternative Root-Dateisysteme (/) wie z. B. eine inaktive Solaris Live Upgrade-Boot-Umgebung erkennen und fehlerfrei behandeln.
Packages können in der Datei pkgmap (Package-Map) absolute Pfade enthalten. Sind die Dateien vorhanden, werden sie relativ zu dem Verzeichnis geschrieben, das mit der Option -R des Befehls pkgadd angegeben wird. Packages, die absolute und relative (verschiebbare) Pfade enthalten, können ebenfalls in einem alternativen Root-Dateisystem (/) installiert werden. $PKG_INSTALL_ROOT wird absoluten und verschiebbaren Dateien vorangestellt, so dass alle Pfade bei der Installation mit pkgadd korrekt aufgelöst werden.
Packages, die mit dem Befehl pkgadd und der Option -R installiert bzw. mit dem Befehl pkgrm und der Option -R entfernt werden, dürfen das zurzeit laufende System nicht modifizieren. Dieses Leistungsmerkmal kommt in der benutzerdefinierten JumpStart-Installation, in Solaris Live Upgrade, nicht-globalen Zonen und Diskless-Clients zum Einsatz.
Prozedurskripten, die in den mit dem Befehl pkgadd und der Option -R installierten bzw. mit dem Befehl pkgrm und der Option -R entfernten Packages enthalten sind, dürfen das zurzeit laufende System nicht modifizieren. Von Ihnen zur Verfügung gestellte Installationsskripten müssen alle Verzeichnisse und Dateien mit vorangestellter $PKG_INSTALL_ROOT-Variable referenzieren. Das Package muss alle Verzeichnisse und Dateien mit dem vorangestellten $PKG_INSTALL_ROOT-Präfix schreiben. Das Package darf keine Verzeichnisse ohne $PKG_INSTALL_ROOT-Präfix entfernen.
Tabelle B-1 zeigt Beispiele der Skriptsyntax.
Tabelle B-1 Beispiele für Installationskriptsyntax
|
$PKG_INSTALL_ROOT ist der Speicherort des Root-Dateisystems (/) auf dem Rechner, zu dem Sie das Package hinzufügen. Der Speicherort wird auf das -R-Argument des Befehls pkgadd gesetzt. So wird beispielsweise beim Aufruf des folgenden Befehls $PKG_INSTALL_ROOT während der Package-Installation zu /a.
# pkgadd -R /a SUNWvxvm
$BASEDIR verweist auf das verschiebbare Basisverzeichnis, in dem verschiebbare Package-Objekte installiert werden. Hier werden nur verschiebbare Objekte installiert. Nicht verschiebbare Objekte (Objekte mit absoluten Pfaden in der Datei pkgmap) werden immer relativ zur inaktiven Boot-Umgebung installiert, nicht jedoch relativ zum aktuellen $BASEDIR. Wenn ein Package keine verschiebbaren Objekte aufweist, wird es als absolutes bzw. nicht verschiebbares Package bezeichnet. $BASEDIR ist nicht definiert und steht Package-Prozedurskripten nicht zur Verfügung.
Angenommen, die Datei pkgmap eines Packages enthält zwei Einträge:
1 f none sbin/ls 0555 root sys 3541 12322 1002918510 1 f none /sbin/ls2 0555 root sys 3541 12322 2342423332
In der Datei pkginfo ist $BASEDIR definiert:
BASEDIR=/opt
Bei Installation dieses Packages mit dem folgenden Befehl wird ls in /a/opt/sbin/ls, aber ls2 als /a/sbin/ls2 installiert.
# pkgadd -R /a SUNWtest
Package-Prozedurskripten müssen vom aktuell ausgeführten BS unabhängig sein, damit eine Änderung des BS verhindert werden kann. Prozedurskripten definieren Aktionen, die an bestimmten Punkten während der Installation bzw. der Deinstallation von Packages auftreten. Mit diesen vordefinierten Namen können vier Prozedurskripten erstellt werden: preinstall, postinstall, preremove und postremove.
Tabelle B-2 Richtlinien zum Erstellen von Skripten
|
Packages dürfen keine Befehle ausführen, die vom Package selbst geliefert werden. Dadurch wird die Diskless-Client-Kompatibilität gewährleistet und sichergestellt, dass keine Befehle ausgeführt werden, für die gemeinsam genutzte Bibliotheken benötigt werden, die noch nicht installiert sind.
Alle Packages müssen mit pkgchk validiert werden. Nachdem Sie ein Package erstellt haben, müssen Sie es vor der Installation mit dem folgenden Befehl überprüfen:
# pkgchk -d dir_name pkg_name
Gibt den Namen des Packages an
Beispiel B-1 Testen von Packages
Nachdem Sie ein Package erstellt haben, müssen Sie es testen, indem Sie es mit der Option R -Verz_name des Befehls pkgadd in einem alternativen Root-Dateisystem (/) installieren. Nach der Installation des Packages ist es wie in diesem Beispiel mit dem Befehl pkgchk auf Fehler zu überprüfen.
# pkgadd -d . -R /a SUNWvxvm # pkgchk -R /a SUNWvxvm
Es sollten keine Fehler angezeigt werden.
Beispiel B-2 Testen eines Packages in /export/SUNWvxvm
Wenn ein Package in /export/SUNWvxvm gespeichert ist, führen Sie den folgenden Befehl aus:
# pkgchk -d /export SUNWvxvm
Es sollten keine Fehler angezeigt werden.
Beim Erstellen, Bearbeiten und Löschen von Dateien können andere Befehle das Package überprüfen. Die folgenden Befehle sind ein Beispiel hierfür.
Mit dem Befehl dircmp und fssnap können Sie zum Beispiel verifizieren, ob sich Packages wie gewünscht verhalten.
Mit dem Befehl ps können Sie außerdem die Konformität von Dämonen testen, indem Sie sicherstellen, dass das Package keine Dämonen stoppt oder startet.
Mit den Befehlen truss, pkgadd -v und pkgrm können Sie testen, ob die Konformität der Package-Installation zur Laufzeit gegeben ist, doch dies funktioniert möglicherweise nicht in allen Situationen. Im folgenden Beispiel entfernt der Befehl truss alle schreibgeschützten Nicht-$TEMPDIR-Zugriffe und zeigt nur die nicht schreibgeschützten Zugriffe auf Pfade an, die nicht in der angegebenen inaktiven Boot-Umgebung liegen.
# TEMPDIR=/a; export TEMPDIR # truss -t open /usr/sbin/pkgadd -R ${TEMPDIR} SUNWvxvm \ 2>&1 > /dev/null | grep -v O_RDONLY | grep -v \ 'open("'${TEMPDIR}