程序包只是具有不同扩展名和指定文件层次结构的.xar存档。不幸的是,该文件层次结构的一部分是实际可安装程序的cpio.gz存档,通常这就是您要编辑的内容。还有一个Bom文件,其中包含有关cpio存档中文件的信息,以及一个PackageInfo文件,其中包含摘要信息。
如果确实需要编辑其中一个信息文件,那很简单:
mkdir Foo
cd Foo
xar -xf ../Foo.pkg
# edit stuff
xar -cf ../Foo-new.pkg *
但是,如果您需要编辑可安装文件:
mkdir Foo
cd Foo
xar -xf ../Foo.pkg
cd foo.pkg
cat Payload | gunzip -dc |cpio -i
# edit Foo.app/*
rm Payload
find ./Foo.app | cpio -o | gzip -c > Payload
mkbom Foo.app Bom # or edit Bom
# edit PackageInfo
rm -rf Foo.app
cd ..
xar -cf ../Foo-new.pkg
我相信您可以在大多数Linux发行版中获得mkbom(和lsbom)。(如果您能够获得同上的体验,那将使事情变得更加容易,但是我不确定这是否几乎无所不在。)