Bei einer inaktiven Boot-Umgebung handelt es sich nicht um das zu dem gegebenen Zeitpunkt laufende System, sondern um eine Kopie des Betriebssystems. Ein Package, das von Live Upgrade oder dem benutzerdefinierten JumpStart-Programm verwendet werden soll, muss folgenden Anforderungen entsprechen:
Ermöglichen einer benutzerdefinierten JumpStart-Installation bzw. eines Upgrades ohne Benutzereingriffe
Keine Modifikation des zurzeit laufenden Systems (dies ist für Solaris Live Upgrade erforderlich)
Die folgende Liste zeigt die Voraussetzungen, die eine inaktive Boot-Umgebung erfüllen muss.
Für eine erfolgreiche Betriebssysteminstallation müssen die Packages Spezifikationen inaktiver Boot-Umgebungen erkennen und fehlerfrei berücksichtigen.
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.
Prozedurskripte, 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. In Tabelle C–2 sehen Sie Beispiele für die korrekte Skriptsyntax.
Tabelle C–2 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 |