[英]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.