我有一個二進制檔案,foo. 使用vercel/pkg構建。
我想把它捆綁在 mac 的安裝程式中;安裝.pkg程式檔案。
它應該將二進制檔案安裝在/usr/local/bin/foo.
試圖:
$ cd Desktop // <--- foo binary is here
$ pkgbuild --identifier com.foo.pkg --install-location ./usr/local/bin/ --root ./ foo.pkg
這會創建一個 .pkg 檔案:foo.pkg在我的桌面上。當我運行時foo.pkg,它會正確安裝foo二進制檔案/usr/local/bin,除了它也會留下foo.pkg。/usr/local/bin
如何才能pkgbuild避免離開foo.pkg里面/usr/local/bin?
更新:
基于這個執行緒BundleIsRelocatable,我認為如果我設定為 false它將起作用。但我無法弄清楚這是如何完成的。
uj5u.com熱心網友回復:
當您通過--root時,它會獲取該檔案夾中的所有內容并將其烘焙到包中。您在pkgbuild您正在構建的根目錄中運行——您的桌面上似乎很可能有一個foo.pkg由先前運行的pkgbuild. 當您再次運行它時,舊foo.pkg包現在已內置到新包中。
相反,指向--root一個只包含您希望打包的檔案的目錄。
否則,使用--analyze生成根目錄的組件串列。根據需要自定義生成的 .plist(指定要包含的檔案和相關選項),然后將其反饋pkgbuild給--component-plist.
如果您還沒有閱讀手冊頁,則應該閱讀。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/535543.html
