deb、ipa、pxl分别是什么格式?有什么区别?( 二 )


Library,一般是用了储存设置文件等数据;
Documents,存储数据,多用了保存存档;
tmp,临时文件夹 。
由于这个软件只能在这个特定的目录下运行(当然了,部分程序会调用系统的通讯录、相机等组件,但仍然是受限制的),从而保证了整个系统的安全性和稳定性 。由于Unix系统下对权限的规定相当严格,所以“越权”的行为是绝对不允许的 。举个例子,mobile用户无权删除root所有的文件,因为root的权限高于mobile 。所以有些人在修改ipa安装后的文件时,比如进行汉化或者修改存档,发现不能删除干净软件,或不能保存,这是因为删除时不能删除root所有的文件,程序本身也无法对root所有的存档文件进行写入操作 。
三、关于pxl格式
pxl格式在1.x时代是iPhone平台上唯一的安装格式,原因是那时候还没有Cydia这样的APT管理软件,苹果官方也没有推出AppStore 。由于在1.x时代积累了大量人气,在接下来的AppStore时代中,pxl格式以其相对简易的打包和安装方式,仍然占据了很大一部分市场 。但随着Installer的停止开发,iBrickr等软件停止更新,目前唯一还在坚持使用pxl格式的就只剩下91一家了 。
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不能实现的功能 。相对简单的获取方式(在线或离线)和安装方式,也不用担心在不同机器上同步会删掉程序的问题 。

推荐阅读