pxl安装包通常包含3个组件:
PxlPkg.plist记录程序文件的存放位置、所有者、权限以及软件标识等信息;PkgScript文件夹,存放安装和卸载脚本;
PxlPkg.plist文件的开头通常是CFBundleIdentifier,记录着软件的唯一标识,以和其他软件进行区分。RDPxlPackageVersion则记录软件版本。RDPxlPackageFireware被用来记录可以运行的固件版本。其余还有一些键值是用来记录软件介绍、网址、作者信息等数据。
除了软件标识、软件版本和可用固件版本以外,PxlPkg.plist的核心部分就是RDPxlPackageFiles和RDPxlPackagePostflight两项。RDPxlPackageFiles记录了程序文件应该被复制到的路径,并提供了是否覆盖的参数:overwrite。而RDPxlPackagePostflight则记录程序文件应该被赋予的所有者和权限,分别以chown和chmod命令来实现。另外,对于含有安装/卸载脚本的pxl来说,还会以sh命令执行相应的脚本Postflight和Preremove。
PkgScript通常包含两个文件,安装后执行的脚本Postflight和卸载前执行的脚本Preremove,这两个脚本就是标准的LinuxShellScript,以sh命令执行。
各类安装包的特点及其安装、卸载方法:
一、deb的特点
丰富的资源:Cydia上本身就不少,更何况任何格式的安装包都可以转换为deb。相对方便的在线购买模式:CydiaStore,不过尽管没有AppStore的5台设备的限制,但对国内用户来说,付款方式比较困难。破解难度较大,没有使用AppStore的验证方式,所以必须将验证和防破解措施加入程序里面,这样就比较难破解,对软件开发者来说是个好事。完善的Unix文件系统支持:无需以命令设置文件的权限、所有者和用户组(当然也可以以脚本来设置)。
完善的脚本支持:5个脚本依照安装和卸载的先后顺序执行,可以提供更多选择。比如备份还原操作,可以在preinst中备份文件,而在postrm中还原文件,严格的依赖关系:deb遵循严格的依赖关系(于Depends和Pre-Depends指定),可以确保软件运行所必需的组件。在线安装的时候会自动安装所依赖的软件包。卸载时也很重要,比如软件包A依赖于B,当卸载B的时候会提示A依赖于B,卸载掉B的话会导致A不能用,这样可以确保系统的完整性和稳定性。
完全权限:由于deb必须以最高权限root的身份运行,deb可以对系统任何位置进行操作,换句话说,deb拥有对整个系统的完全控制,因此deb安装包软件可以实现很多ipa不能实现的功能。相对简单的获取方式(在线或离线)和安装方式,也不用担心在不同机器上同步会删掉程序的问题。
安装相对简单:其实无论是哪种安装包,安装方法都不算很复杂,只不过deb稍微复杂一些。