[英]Package a command line script in a Mac OS X pkg
我有一個程序(由同事創建,從Linux移植但在Mac上成功編譯)我需要部署到許多Mac工作站。 目前我們通過推出pkg文件(不是我們創建的文件)來實現。
我的一般問題(其他人可能會找到有用的答案)是如何將命令行程序/腳本打包到安裝程序的pkg文件中? 包裝.app文件的常用方法似乎記錄得很好,但是關於采用任意程序並將其包裝在pkg安裝程序中的細節很少。
pkgbuild(等)的手冊頁做了很多假設 - 你已經用xcode構建了一個應用程序,你打算使用.app並且可以生成plist等。我們要做的就是讓mac server安裝一個非app程序,它想要使用pkgs。
如果解決方案是可編寫腳本的,那么每次我們更新程序時都可以輕松創建新的pkg文件。 如果已經解釋過這個過程的體面資源可以聯系起來當然也會很有效。 這里的問題: 使OS X安裝程序包像Pro-Xcode Developer ID ready pkg與簡單安裝基本cli程序的需要不匹配。
我會推薦套餐 。
它是可編寫腳本的,因此它可以成為構建過程的一部分,並為您生成一個很好的mpkg。
我們使用它來自動下載第三方庫,然后調用make進行編譯,以及編譯文件的安裝。
需要注意的是,雖然這會產生一個mpkg,但大多數發行都是用磁盤映像完成的,所以我們也使用hdiutil來創建稀疏圖像,將mpkg復制到其中,將其轉換為壓縮的只讀dmg然后分發。
此過程的一個示例是:
1)創建稀疏RW DMG文件。
hdiutil create -size 100M -type SPARSE -volname "MyInstaller" -fs HFS+ MyInstaller.dmg.sparseimage
2)附加到圖像。 從輸出中注意磁盤和已裝入的卷名(例如/ dev / disk2s1和/ Volumes / MyInstaller)
hdiutil attach MyInstaller.dmg.sparseimage
3)在mpkg安裝程序中復制
cp -R Packages/build/My_Packages.mpkg /Volumes/MyInstaller/
4)從圖像中檢測。
hdiutil detach -force {mounted disk} (ex. hdiutil detach -force /dev/disk2s1)
5)從可寫稀疏圖像創建壓縮只讀圖像。
hdiutil convert "MyInstaller.dmg.sparseimage" -format UDZO -o "MyInstaller.dmg" -ov -imagekey zlib-level=9
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.