pkgadd 命令
用途將軟體包或集合傳輸到系統。
語法pkgadd 安裝軟體包
pkgadd [ -d Device] [ -r Response] [ -n ] [ -a Admin] [ Pkginst1 [ Pkginst2 [. . .]]]
複製軟體包到指定的假脫機目錄
pkgadd -s Spool [ -d Device] [ Pkginst1 [ Pkginst2 [. . .]]]
pkgadd 命令從分發介質或目錄中傳輸軟體包或集合的內容以將其安裝到系統。軟體包是相關檔案和可獨立安裝的執行檔的集合。集合由特殊用途的軟體包(將它稱作集合安裝包(Set Installation Package (SIP)))和屬於集合的一個或多個軟體包的集合組成。SIP 控制集合的安裝。
pkgadd 檢查所有列在命令行中的軟體包是否在安裝介質中。如果所列軟體包中任何一個不存在,就不改變系統,也就是說,所列軟體包都不安裝。
注:
您必須是 “ root ”用戶才能安裝軟體包。非 root 用戶只可以在一定程度上運行 pkgadd。
如果不帶 -d 標誌運行, pkgadd 在預設的假脫機目錄中尋找軟體包( /var/spool/pkg)。如果帶 -s 標誌運行,它就將軟體包寫到假脫機目錄而不是安裝它。
錯誤訊息總是被記錄。另外,當 pkgadd 終止時,它就傳送郵件(預設情況下,給 root 用戶),該郵件中包含所有的錯誤訊息和哪些軟體包被完全地、部分地或一點都沒安裝的總結。
標誌
-d Device 從 Device 安裝或複製軟體包或集合。Device 可以是到目錄、檔案或指定的管道的全路徑名,或者是“-”,它指定為從標準輸入中讀取的數據流格式的軟體包。預設的設備是安裝假脫機目錄( /var/spool/pkg )。
-r Response Response,標識檔案或目錄,它包含在先前的 pkgask 會話中被“request script”提出的問題的答案,這個會話在互動式模式中管理〔 參見 pkgask 命令〕。 當 Pkginst 是軟體包時, Response 可以是全路徑名或目錄;當 Pkginst 是 SIP 時, Response 必須是目錄。
-n 指定安裝在非互動式模式下運行。預設模式是互動式的。
-a Admin 定義安裝管理檔案, Admin,這些檔案被用來替換指定執行安裝檢查(如對空間數量、系統狀態等的檢查)的預設管理檔案。標記“none”覆蓋對任何 admin 檔案的使用,從而強制與用戶的互動。除非給定全路徑名,否則 pkgadd 在 /var/sadm/install/admin 目錄中尋找檔案。預設情況下,在那個目錄中的 default 檔案被使用。default 指定不做檢查,除了要檢查是否有足夠的空間來安裝軟體包,以及是否與其它的軟體包有依賴關係。 -a 標誌不能使用,如果 Pkginst 是 SIP 的話。
Pkginst 定義一個用於表示軟體包或集合名縮寫的短字元串。(術語“軟體包實例(package instance)”被寬鬆使用:它代表 Pkginst 的所有實例。) 請參見 pkginfo 命令和 pkginfo 檔案格式。
如果 Pkginst 是 SIP,則 SIP 通過使用請求腳本(request scripts)和安裝前腳本(pre-install scripts)來控制集合的安裝。由 SIP 請求腳本(request scripts),而不是軟體包安裝工具,負責提示用戶去回響和採取適當的行動。如果請求腳本(request scripts)失敗,則僅 SIP 被處理。
要表示軟體包的所有實例,請指定‘ Pkginst.* ’,將命令行包含到單引號中,象顯示的那樣,從而防止 shell 去解釋“ *”字元。使用標記“ all”來代表源介質中所有可用的軟體包。
-s Spool 將軟體包讀到目錄 Spool 中而不是安裝它。
-r 標誌可以用來表示目錄名,也可表示檔案名稱。目錄中可以包含很多 Response 檔案,每個檔案都使用與它相關的軟體包的名字。例如,這將被使用在當一次調用 pkgadd 以添加多個互動式軟體包時。 每個具有請求腳本(request script)的軟體包將需要一個 Response 檔案。如果你創建一個與軟體包名同名的 response 檔案(例如,Package1 和 Package2),那么在 -r 標誌之後,指明這些檔案駐留的目錄。
-n 標誌導致安裝停止,如果需要任一互動作用來完成它的話。
當不帶在命令行中指定的 Pkginst 而調用時,如果至少有一個 SIP 存在於介質上,pkgadd 僅顯示集合名。正因為此,如果有些軟體包是集合的成員而有些又不是,你就不應該包含同一介質上的這些軟體包。如果你包含了,那些不是集合成員的軟體包僅當它們的 pkginst 名被提供在命令行中時才能安裝。
pkgadd 命令檢查是否 Pkginst 中的任何檔案都已經安裝到系統上,並且,如果任何檔案已被安裝,就在繼續安裝前保存這個事實。然後, pkgadd 不再在系統上重新安裝這些檔案。如果某個軟體包安裝腳本刪去了這樣一個檔案,結果將是當軟體包安裝完畢時這個檔案將不會在系統上。
pkgadd 命令在被 pkgmk 處理前不解壓任何已經被壓縮的檔案(也就是說,僅僅是“ .Z ”形式的)。
退出狀態
該命令返回下列出口值:
0 腳本成功完成。
1 致命錯誤。在此點上安裝進程終止。
2 警告或可能錯誤狀態。安裝繼續。完成時顯示警告訊息。
3 腳本被中斷並且可能完成不了。在此點上安裝終止。
4 腳本被掛起(管理)。在此點上安裝終止。
5 腳本被掛起(需要互動)。在此點上安裝終止。
10 當所有選定的軟體包的安裝完成時系統應該重啟。(這個值應該被加到上面所描述的某一個一位退出代碼上。)
20 噹噹前軟體包安裝完成時立即重啟系統。(這個值應該被加到上面所描述的某一個一位退出代碼上。)
77 沒有給集合選擇軟體包。
99 內部錯誤。
檔案
/var/sadm/install/admin/default 預設軟體包管理檔案
/var/sadm/install/logs/pkginst.log 錯誤訊息日誌
/var/spool/pkg 預設假脫機目錄
pkgask 命令、pkgchk 命令、pkginfo 命令、pkgmk 命令、pkgparam 命令、pkgrm 命令。