En alternativ rot (/) är en kopia av operativmiljön, inte systemet som körs för tillfället. Ett paket som används av Live Upgrade eller anpassad JumpStart måste följa de här kraven:
Aktivera en anpassad JumpStart-installation eller -uppgradering utan användarinteraktivitet
När du använder Solaris Live Upgrade får systemet som körs för tillfället inte ändras
I följande lista förklaras kraven för alternativ rot (/).
Om en installation av en operativmiljö ska lyckas, måste paketen känna igen och respektera alternativa rotangivelser (/).
Paketen kan inkludera absoluta sökvägar i deras pkgmap-fil (paketavbildning). Om de här filerna finns är de skrivna relativt till pkgadd-kommandots -R-alternativ. Paket som innehåller både absoluta och relativa (relokerbara) sökvägar kan också installeras till en alternativ rot (/). $PKG_INSTALL_ROOT läggs till före både absoluta och relokerbara filer så att alla sökvägar löses korrekt när de installeras med pkgadd.
Paket som installeras med -R-alternativet för pkgadd eller som tas bort med -R-alternativet för pkgrm, får inte ändra systemet som körs för tillfället.
Alla procedurskript som följer med paketen som installeras med kommandot pkgadd och alternativet -R eller som tas bort med kommandot pkgrm och -R-alternativet får inte ändra systemet som körs för tillfället Alla installationsskript som du använder måste referera till en katalog eller fil med variabeln $PKG_INSTALL_ROOT som prefix. Paketet måste skriva alla kataloger och filer med prefixet $PKG_INSTALL_ROOT. Paketet får inte ta bort kataloger och filer utan prefixet $PKG_INSTALL_ROOT. Tabell C-2 ger exempel på korrekt skriptsyntax.
Tabell C-2 Exempel på installationskriptsyntax
$PKG_INSTALL_ROOT är platsen där rotfilsystemet (/) för datorn som du lägger till paketen på finns. Den anges till -R-argumentet för kommandot pkgadd. Om till exempel följande kommando anropas:
# pkgadd -R /a SUNWvxvm |
Då läggs $PKG_INSTALL_ROOT till före /a under installationen av paketet.
$BASEDIR pekar på den relokerbara baskatalog som relokerbara paketobjekt installeras till. Endast relokerbara objekt installeras här. Icke-relokerbara objekt (de som har absoluta sökvägar i pkgmap-filen) installeras alltid relativt till den alternativa roten (/), men inte relativt till $BASEDIR. Om ett paket inte har några relokerbara objekt, anses paketet vara ett absolut paket (eller icke-relokerbart). $BASEDIR är då odefinierad och inte tillgänglig för paketprocedurskript.
Anta exempelvis att paketets pkgmap-fil har två poster:
1 f none sbin/ls 0555 root sys 3541 12322 1002918510 1 f none /sbin/ls2 0555 root sys 3541 12322 2342423332 |
Och pkginfo-filen har en specfikation för $BASEDIR:
BASEDIR=/opt |
Om det här paketet installeras med följande kommando:
# pkgadd -R /a SUNWtest |
Då installeras ls i /a/opt/sbin/ls, men ls2 installeras som /a/sbin/ls2.