一個替代 root (/) 為作業環境的副本,而不是目前運作的系統。Live Upgrade 或自訂 JumpStart 程式所使用的套裝軟體必須遵循這些需求:
在不使用使用者互動的情況下啟用自訂 JumpStart 安裝或升級
不用修改目前運作的系統,而當使用 Solaris Live Upgrade 時便需要修改。
下列清單解釋了替代 root( /)相容性的需求。
為了使作業系統安裝成功,套裝軟體必須認識並正確的回應替代 root (/ )限定符號。
套裝軟體可以在其pkgmap檔案(套裝軟體對映)中包含絕對路徑。若是存在這些檔案,其相對於pkgadd指令的- R選項進行寫入。同時包含絕對與相對(可重定位的)路徑的套裝軟體也可以安裝至一個替代 root (/)。$PKG_INSTALL_ROOT同時前置於絕對與可重定位的檔案,因此當在pkgadd安裝時能夠正確地解析所有的路徑。
使用pkgadd - R選項安裝或使用pkgrm - R選項移除的套裝軟體,不得修改目前運作的系統。
任何伴隨使用pkgadd指令- R選項安裝或使用pkgrm指令- R選項移除的套裝軟體而來的程序檔,不得修改目前運作的系統。任何提供的安裝程序檔必須參照任何以$PKG_INSTALL_ROOT 變數為字首的目錄或檔案。套裝軟體必須寫入所有使用 $PKG_INSTALL_ROOT字首的目錄與檔案。套裝軟體不得移除沒有使用$PKG_INSTALL_ROOT為字首的目錄。表 C-2提供正確撰寫程序檔語法的範例。
表 C-2 安裝程序檔語法範例
$PKG_INSTALL_ROOT為 root( /)新增套裝軟體的機器檔案系統位置。其設定為pkgadd指令的-R引數。例如,若是呼叫下列的指令:
# pkgadd -R /a SUNWvxvm |
則在套裝軟體安裝期間$PKG_INSTALL_ROOT將前置於/a。
$BASEDIR指向將會安裝可重定位套裝軟體物件的 relocatable基本目錄。在此只有安裝可重定位的物件。不可重定位的物件(那些在pkgmap檔案中擁有absolute路徑的物件)的安裝永遠相對於替代 root(/),而不是實際生效的$BASEDIR。若是套裝軟體沒有可重定位的物件,則該套裝軟體被稱之為絕對套裝軟體 (或不可重定位的),並且尚未定義$BASEDIR也無法在套裝軟體程序檔中使用。
例如,假設套裝軟體的pkgmap檔案有兩個登錄:
1 f none sbin/ls 0555 root sys 3541 12322 1002918510 1 f none /sbin/ls2 0555 root sys 3541 12322 2342423332 |
並且pkginfo檔案有 $BASEDIR的規格:
BASEDIR=/opt |
若是此套裝軟體使用下列的指令進行安裝:
# pkgadd -R /a SUNWtest |
則ls將安裝在/a/opt/sbin/ls ,但是ls2將安裝為/a/sbin/ls2 。