根據--component-plist
文件,我製作了一個包含2個組件的軟件包。在plist文件我已經添加了以下標誌,以防止降級:pkgbuild OSX,在降級的情況下強制執行安裝失敗
BundleIsVersionChecked: Don't install bundle if newer version on disk? (bool)
,當我進行降級的情況下,我得到以下信息:
Sep 15 11:42:49 os-x-10 installd[284]: PackageKit: Skipping component \
"com.my.driverAE21E" (<current_version>) because the version \
<new_version> is already installed at <my_component>
這是意料之中的,但不幸的是,安裝繼續,另一個組件正在正確安裝,preinstall
和postintsall
腳本也一樣 - 所以我得到了兩個版本的混合。
是否有任何方法可以在嘗試實際安裝它們之前強制執行組件版本驗證,並且在驗證不通過時停止安裝過程。
UPDATE:
另一種方法,可以幫助我是爲了防止預安裝和安裝後腳本的運行的情況下,試圖降級而成。
我見過參考關於這個問題的未答覆的問題here。