iPhone各种软件格式详解

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

关于iphone4各种安装包格式详解。deb、ipa 和 pxl

前言:

虽然有些多,但是完全没有接触过IOS的朋友可以好好看看了解了解。

往后会为大家更新上各种格式之间的转换,

1

目前 iOS 平台上常见的安装包有三种,deb、ipa 和 pxl。

其中 deb 格式是 Debian 系统(包含 Debian 和 Ubuntu )专属安装包格式,配合 APT 软件管理系统,成为了当前在 Linux 下非常流行的一种安装包。

进入 2.x 时代之后有 Cydia 作者 Jay Freeman(saurik)移植到 iPhone 平台上,一起的还有 APT 软件管理系统。

而 ipa 格式则是苹果在 iOS 平台上推出的专属软件安装包,在2.0固件开始才正式使用,是目前 iPhone/iPod Touch/iPad 平台上唯一的官方安装包。

而 pxl 格式则起源于 Mac 系统上的 pkg 安装包,被广泛应用于1.x固件时代,曾经是 iPhone 平台上唯一的软件安装包,现在仍在被91等软件所使用。

2

.deb

丰富的资源:Cydia 上本身就不少,更何况任何格式的安装包都可以转换为deb。

相对方便的在线购买模式:Cydia Store,不过尽管没有 App Store 的5台设备的限制,但对国内用户来说,付款方式比较困难。

XX难度较大,没有使用 App Store 的验证方式,所以必须将验证和防XX措施加入程序里面,这样就比较难XX,对软件开发者来说是个好事。

完善的 Unix 文件系统支持:无需以命令设置文件的权限、所有者和用户组(当然也可以以脚本来设置)

完善的脚本支持:5个脚本依照安装和卸载的先后顺序执行,可以提供更多选择。比如备份还原操作,可以在 preinst 中备份文件,而在 postrm 中还原文件

严格的依赖关系:deb 遵循严格的依赖关系(于 Depends 和 Pre-Depends 指定),可以确保软件运行所必需的组件。在线安装的时候会自动安装所依赖的软件包。

卸载时也很重要,比如软件包 A 依赖于 B,当卸载 B 的时候会提示 A 依赖于B,卸载掉 B 的话会导致 A 不能用,这样可以确保系统的完整性和稳定性。

Conflicts、Replaces、Provides 等键值的存在可以实现冲突提示或替换其它软件包。

完全权限:由于 deb 必须以最高权限 root 的身份运行,deb可以对系统任何位置进行操作,换句话说,deb 拥有对整个系统的完全控制,因此 deb 安装包软件可

以实现很多 ipa 不能实现的功能。

相对简单的获取方式(在线或离线)和安装方式,也不用担心在不同机器上同步会删掉程序的问题。

安装相对简单:其实无论是哪种安装包,安装方法都不算很复杂,只不过 deb 稍微复杂一些。

deb 的安装方法

1.Cydia 或同类 APT 管理软件在线安装,这个是最佳的安装方式,因为通常无需考虑依赖关系,但缺点是对网络的要求比较高;

2.命令行中以dpkg -i XXX.deb 的形式安装,好处是可以以通配符一次性安装多个deb,而且也可以直接看到脚本的运行状况和安装成功/失败的提示信息,缺点是需

要命令行软件的支持,如 Putty/WinSCP的控制台/iSSH/MobileTerminal,很多人也不熟悉命令行下的操作。另外,安装完后会不显示图标;

3.放置于 AutoInstall 目录重启安装。该方法实际是 Cydia 提供的一个启动脚本,在每次系统启动时以 dpkg 命令安装 AutoInstall 目录下的 deb,好处是不需要命

令行操作,缺点是必须要重启,有些甚至要重启两次,也会出现不显示图标的情况;

4.利用 iFile 安装,好处是图形化操作,桌面会显示图标,缺点是不能一次安装多个 deb;

5.用 Cyder II 等软件来安装,其原理是模拟一个 APT 软件管理器来下载相应的 deb 文件并传到设备,然后以前面几种方式来安装。

总体来说,deb 的安装都是依赖于 dpkg -i 命令来安装,只不过有些是在命令行下输入命令,有些是提供了图形界面。但除了 Cydia 安装一种方式之外,其余几种

安装方式都存在一些共有的问题:

不会自行搜索依赖关系,必须手动提供所依赖的 deb;

Cydia 会读取安装脚本里的一些特殊语句,比如仅在全新安装时执行而不在升级时执行,安装完成后重启 SpringBoard 或设备等等。

当然了,deb 软件的卸载也比较简单,有两种方式:

Cydia 里卸载,优点是卸载过程和提示信息很详细,全图形界面操作,同时也提供了重新安装的选项;

以 dpkg -r Package_ID 命令或 dpkg -P Package_ID 命令来卸载(详情后面会说);

Cydelete 来卸载,优点是可以直接在桌面上卸载有图标的软件,但对那些没有图标的无能为力。

其实,不管是安装还是删除,都可以才要全手动的方法。即,解包 deb 之后,

自己将文件放到相应位置,然后设置权限等并执行脚本。但这样有必要么?

deb 的安装过程如下:

读取数据库并锁定,避免同时有两个安装程序在运行

读取 control 中的 Package(软件包标识)和版本信息,并搜索数据库,若已存在,则卸载之后再安装;

检查 Depends, Pre-Depends, Conflicts 和 Replaces,如果检测到已存在Conflicts 中存在的软件,则报错并终止安装。如未找到 Pre-Depends 指定的软件,则报错

并终止安装。如找到 Replaces 中指定的软件,则卸载之;

将数据写入 /var/lib/dpkg/status 文件中;

执行 preinst 脚本(如果有);

解包 data.tar.gz,将文件放置于相应位置,并将文件列表写入

/var/lib/dpkg/info/XXX.list;

运行 postinst 和 extrainst_ 脚本(如果有);

如果之前的安装都没有出错,即安装成功,那么会在 status 文件中写入Status: install ok installed 信息,否则会写入其它状态数据,比如Unpacked (未解包数

据)、Failed-config(脚本未能成功执行)、Half-installed(安装失败等);

重新加载数据库并解除锁定。

deb 的卸载过程如下:

读取数据库并锁定;

相关文档
最新文档