我来分享deb、ipa、pxl分别是什么格式
|
deb、ipa、pxl分别是什么格式?有什么区别?目前iOS平台上常见的软件安装包有三种,分别是deb、ipa和pxl格式文件,那么它们之间的区别是什么呢?如果你不清楚的话,可以阅读下文进行了解!
deb、ipa、pxl是什么格式? deb格式是Debian系统(包含Debian和Ubuntu)专属安装包格式,配合APT软件管理系统,成为了当前在Linux下非常流行的一种安装包。进入2.x时代之后有Cydia作者JayFreeman(saurik)移植到iPhone平台上,一起的还有APT软件管理系统。 ipa格式则是苹果在iOS平台上推出的专属软件安装包,在2.0固件开始才正式使用,是目前iPhone/iPodTouch/iPad平台上唯一的官方安装包。 pxl格式则起源于Mac系统上的pkg安装包,被广泛应用于1.x固件时代,曾经是iPhone平台上唯一的软件安装包,现在仍在被91等软件所使用。 各类安装包概述: 一、关于deb格式 deb是Unix系统(其实主要是Linux)下的安装包,基于tar包,因此本身会记录文件的权限(读/写/可执行)以及所有者/用户组。由于Unix类系统对权限、所有者、组的严格要求,而deb格式安装包又经常会涉及到系统比较底层的操作,所以权限等的设置尤其重要。 deb包本身有三部分组成: 数据包,包含实际安装的程序数据,文件名为data.tar.XXX;安装信息及控制脚本包,包含deb的安装说明,标识,脚本等,文件名为control.tar.gz; 最后一个是deb文件的一些二进制数据,包括文件头等信息,一般看不到,在某些软件中打开可以看到。deb本身可以使用不同的压缩方式。tar格式并不是一种压缩格式,而是直接把分散的文件和目录集合在一起,并记录其权限等数据信息。之前提到过的data.tar.XXX,这里XXX就是经过压缩后的后缀名。deb默认使用的压缩格式为gzip格式,所以最常见的就是data.tar.gz。常有的压缩格式还有bzip2和lzma,其中lzma压缩率最高,但压缩需要的CPU资源和时间都比较长。 data.tar.gz包含的是实际安装的程序数据,而在安装过程中,该包里的数据会被直接解压到根目录(即/),因此在打包之前需要根据文件所在位置设置好相应的文件/目录树。而control.tar.gz则包含了一个deb安装的时候所需要的控制信息。一般有5个文件: control,用了记录软件标识,版本号,平台,依赖信息等数据; preinst,在解包data.tar.gz前运行的脚本; postinst,在解包数据后运行的脚本; prerm,卸载时,在删除文件之前运行的脚本; postrm,在删除文件之后运行的脚本; 在Cydia系统中,Cydia的作者Saurik另外添加了一个脚本,extrainst_,作用与postinst类似。 二、关于ipa格式 使用过MacOS的人可能都知道,Mac下的软件大部分都只有一个.app目录,里面包含了程序全部资源和可执行文件。简单来说,Mac下的软件就像是Windows下的绿色软件一样,解压后即可使用,不需要安装,卸载的话也只用删除程序文件即可(这里不涉及pkg格式安装包)。而ipa格式可以视为这种.app软件的衍生物。 ipa文件实质是一个zip压缩包(不是rar或7z包),包含3个组件:payload目录下的.app目录,这个是软件的主程序; iTunesArtwork,实质是一个无后缀名的png图片,用来在iTunes中显示图标; iTunesMetadata.plist,记录购买者信息、售价等数据。 由于zip包不能记录权限和所有者等信息,所以苹果规定了ipa的安装方式,即全部ipa都会解包安装在/var/mobile/Applications目录下,全部文件和目录的所有者及用户组均设为mobile(ID为501),主程序(可执行文件)的权限设为0755(所有人都可以执行,但只有所有者可以修改),可执行文件在plist中定义。全部目录权限设为0755,而其它所有文件都设为0644(仅所有者可以修改,其余人只允许读取,全部人都不允许执行)。ipa解包后并非直接放置于Applications目录下,而是放在一串由随机码构成的目录下,其作用在于,只允许这个软件运行在一个特定的沙盒(Sandbox)中,不能干扰其他软件。因此那串随机码目录下,除了ipa本身的三个组件之外,还有三个目录: 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不能实现的功能。相对简单的获取方式(在线或离线)和安装方式,也不用担心在不同机器上同步会删掉程序的问题。 安装相对简单:其实无论是哪种安装包,安装方法都不算很复杂,只不过deb稍微复杂一些。 deb的安装方法大体有5种: Cydia或同类APT管理软件在线安装,这个是最佳的安装方式,因为通常无需考虑依赖关系,但缺点是对网络的要求比较高;命令行中以dpkg-iXXX.deb的形式安装,好处是可以以通配符一次性安装多个deb,而且也可以直接看到脚本的运行状况和安装成功/失败的提示信息,缺点是需要命令行软件的支持,如Putty/WinSCP的控制台/iSSH/MobileTerminal,很多人也不熟悉命令行下的操作。另外,安装完后会不显示图标; 放置于AutoInstall目录重启安装。该方法实际是Cydia提供的一个启动脚本,在每次系统启动时以dpkg命令安装AutoInstall目录下的deb,好处是不需要命令行操作,缺点是必须要重启,有些甚至要重启两次,也会出现不显示图标的情况;利用iFile安装,好处是图形化操作,桌面会显示图标,缺点是不能一次安装多个deb;用CyderII等软件来安装,其原理是模拟一个APT软件管理器来下载相应的deb文件并传到设备,然后以前面几种方式来安装。 总体来说,deb的安装都是依赖于dpkg-i命令来安装,只不过有些是在命令行下输入命令,有些是提供了图形界面。但除了Cydia安装一种方式之外,其余几种安装方式都存在一些共有的问题: 不会自行搜索依赖关系,必须手动提供所依赖的deb;Cydia会读取安装脚本里的一些特殊语句,比如仅在全新安装时执行而不在升级时执行,安装完成后重启SpringBoard或设备等等。当然了,deb软件的卸载也比较简单,有三种方式: |
相关文章
热销商品
淘岩板陶瓷盆亮面浴室柜组合现代简约卫生间洗漱台厕所洗手盆柜组合
岩板陶瓷盆亮面浴室柜组合现代简约卫生间洗漱台厕所洗手盆柜组合
¥620 领券购买
淘圆角太空铝智能浴室镜柜储物柜卫生间挂墙式带美妆收纳架梳妆镜箱
圆角太空铝智能浴室镜柜储物柜卫生间挂墙式带美妆收纳架梳妆镜箱
¥115 领券购买
天家用吸顶风扇灯2026年新款餐厅静音客厅卧室变频带电一体风扇吊灯
家用吸顶风扇灯2026年新款餐厅静音客厅卧室变频带电一体风扇吊灯
¥230 领券购买
淘海尔电热水器洗澡家用省电节能家用卫生间60L恒温速热节能MC3PRO
海尔电热水器洗澡家用省电节能家用卫生间60L恒温速热节能MC3PRO
¥498 领券购买
天【定做30天】九牧卫浴中古风感应灯家用美妆浴室柜组合陶瓷一体盆
【定做30天】九牧卫浴中古风感应灯家用美妆浴室柜组合陶瓷一体盆
¥1578.5 领券购买
淘艺术收藏夹 小酒馆 毛毯空调毯便携休闲毯可折叠办公室午睡毯礼物
艺术收藏夹 小酒馆 毛毯空调毯便携休闲毯可折叠办公室午睡毯礼物
¥125 领券购买
淘【清仓处理】清仓处理加厚法兰绒毛毯床单铺盖宿舍学生四季毯纯色
【清仓处理】清仓处理加厚法兰绒毛毯床单铺盖宿舍学生四季毯纯色
¥5.86 领券购买
淘戴眼镜的卡通兔子胸针女衬衫胸口免缝防走光扣时尚百搭配饰品5231
戴眼镜的卡通兔子胸针女衬衫胸口免缝防走光扣时尚百搭配饰品5231
¥32.8 领券购买
淘莫兰迪针织毯民宿床尾巾毛毯装饰搭巾客厅午睡盖毯轻奢沙发毯子
莫兰迪针织毯民宿床尾巾毛毯装饰搭巾客厅午睡盖毯轻奢沙发毯子
¥61.2 领券购买
天李宁T4000足球男女士官方正品耐磨回弹减阻比赛训练专用5号足球
李宁T4000足球男女士官方正品耐磨回弹减阻比赛训练专用5号足球
¥122 领券购买
淘羊皮外套女短款黑色修身加大码海宁真皮2026春秋新品绵羊皮女皮衣
羊皮外套女短款黑色修身加大码海宁真皮2026春秋新品绵羊皮女皮衣
¥220.38 领券购买
淘长帝猫小易pro智能烤箱家用多功能全自动烘焙电烤箱蛋糕
长帝猫小易pro智能烤箱家用多功能全自动烘焙电烤箱蛋糕
¥610 领券购买
淘香港加绒加厚雪地靴女冬2025新款皮毛一体厚底棉靴保暖防寒面包鞋
香港加绒加厚雪地靴女冬2025新款皮毛一体厚底棉靴保暖防寒面包鞋
¥29.99 领券购买
天欧派浴室柜组合法式复古风卫生间陶瓷一体盆浴室柜洗漱台洗手盆柜
欧派浴室柜组合法式复古风卫生间陶瓷一体盆浴室柜洗漱台洗手盆柜
¥1556.33 领券购买
天防蚊子纱窗网家用自粘型窗纱门帘魔术贴磁性窗帘自装可拆卸免打孔
防蚊子纱窗网家用自粘型窗纱门帘魔术贴磁性窗帘自装可拆卸免打孔
¥16.7 领券购买
天品胜USB3.0千兆网卡瑞昱RTL8153B螃蟹芯片外置RJ45有线网络以太网接头宽带转换器台式机笔记本电视外置网卡
品胜USB3.0千兆网卡瑞昱RTL8153B螃蟹芯片外置RJ45有线网络以太网接头宽带转换器台式机笔记本电视外置网卡
¥51.9 领券购买

