Solaris 9 安裝指南

附錄 C 附加的 SvR4 封裝需求(參考)

這份附錄是為需要使用自訂 JumpStart 程式或 Solaris Live Upgrade 來安裝或移除套裝軟體(特別是協力廠商的套裝軟體)的系統管理員而撰寫的。遵循這些封裝需求將使自訂的 JumpStart 安裝維持非互動式,並避免修改目前執行中的系統,以便您能夠使用 Solaris Live Upgrade 來進行升級。


註解 -

替代 root (/) 是作業環境的副本,而非目前執行中的系統。


封裝需求概述

為了使自訂 JumpStart 程式以及 Solaris Live Upgrade 能正確執行,套裝軟體必須符合 SvR4 封裝需求。 應用程式封裝開發者指南提供有關封裝需求和術語定義的更詳細資訊。 請特別注意本章節: Application Packaging Developer's Guide.中的"Advanced Package Creation Techniques"

如需增加與移除套裝軟體以及安裝管理檔案的基本資訊,請參閱 System Administration Guide: Basic Administration 中的 "Managing Software (Overview)" 。另請參閱特定的線上援助頁。

如需有關此附錄中所參考指令的詳細資訊,請參閱線上援助頁 dircmp(1)fssnap(1M) ps(1) truss(1)

表 C-1 列有適用於 Solaris Live Upgrade 或自訂 JumpStart 程式之資訊。

表 C-1 需求資訊

安裝方法 

記錄成文之需求 

Solaris Live Upgrade 

自訂 JumpStart 程式 

自訂 JumpStart 程式以及 Solaris Live Upgrade 替代 Root (/) 需求

替代 root (/) 是作業環境的副本,而非目前執行中的系統。Live Upgrade 或自訂 JumpStart 程式所使用的套裝軟體必須遵循這些需求:

下列清單解釋替代 root ( /) 相容性需求。

$PKG_INSTALL_ROOT$BASEDIR 之間的差異概述

$PKG_INSTALL_ROOT 為 root ( /) 檔案系統在增加套裝軟體的機器上的位置。 該位置設定為 pkgadd 指令的 -R 引數。例如,如果啟動下列指令,則在安裝套裝軟體期間,系統會將 $PKG_INSTALL_ROOT 前置於 /a


# pkgadd -R /a SUNWvxvm

$BASEDIR 指向安裝可重定位套裝軟體物件的 relocatable 基本目錄。僅可重定位物件安裝於此。不可重定位的物件(那些在 pkgmap 檔案中擁有絕對路徑的物件)的安裝位置總是相對於替代 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

如果使用下列指令安裝此套裝軟體,則 ls 安裝在 /a/opt/sbin/ls 中,但 ls2 安裝為 /a/sbin/ls2


# pkgadd -R /a SUNWtest

Solaris Live Upgrade 替代啟動環境相容性

當使用 Solaris Live Upgrade 並建立新的啟動環境時,請遵循這些準則以避免問題。

可以使用多條指令來檢驗這些建立、修改及刪除檔案的需求。例如,dircmp 或是 fssnap 指令可以用來檢驗該套裝軟體是否作業正確。同時,ps 指令可以用來測試常駐程式相容性,以確定套裝軟體不會停止或啟動常駐程式。truss 以及 pkgadd 指令可以測試執行期間套裝軟體安裝相容性,但是不一定能夠在所有狀況中生效。在下列範例中,truss 指令刪除所有唯讀的、非 $BASEDIR 的存取,並只顯示不存在於指定的替代 root (/) 之中的非唯讀的路徑存取。


# BASEDIR=/a; export BASEDIR

# truss -t open /usr/sbin/pkgadd -R ${BASEDIR} SUNWvxvm \

2>&1> /dev/null | grep -v O_RDONLY | grep -v \

'open("'${BASEDIR}

如需有關本節中所參考指令的詳細資訊,請參閱線上援助頁 dircmp(1)fssnap(1M) ps(1) truss(1)

相容於自訂 JumpStart 程式的升級

自訂 JumpStart 程式相容性可確保套裝軟體作為傳統 Solaris 安裝公用程式的一部份,可被增加與移除,如以下所示:

自訂 JumpStart 程式相容性亦可確保套裝軟體可以參與 Solaris 升級。如果要擁有自訂 JumpStart 程式的相容性,套裝軟體也必須遵循"自訂 JumpStart 程式以及 Solaris Live Upgrade 替代 Root (/) 需求"中所概述的替代 root (/) 需求。

為有效使用自訂 JumpStart 程式,必須能夠增加或移除套裝軟體而無需使用者依系統提示輸入資訊。為避免使用者互動,請使用帶 -a 選項的 pkgadd 指令設定新的管理檔案。-a 選項可定義欲使用的安裝管理檔案,以代替預設管理檔案。使用預設檔案可能會造成系統提示使用者輸入更多資訊。您可以建立管理檔案以指示 pkgadd 略過這些檢查並在使用者的確認下安裝套裝軟體。下列範例顯示如何使用 pkgadd 管理檔案。

以下是安裝管理檔案的範例,此範例可避免 pkgadd 在安裝套裝軟體之前提示使用者用確認。

mail=

instance=overwrite

partial=nocheck

runlevel=nocheck

idepend=nocheck

space=nocheck

setuid=nocheck

confiict=nocheck

action=nocheck

basedir=default

如需詳細資訊,請參閱線上援助頁 admin( 4)pkgadd( 1M)