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


【deb、ipa、pxl分别是什么格式?有什么区别?】安装相对简单:其实无论是哪种安装包,安装方法都不算很复杂,只不过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软件的卸载也比较简单,有三种方式:
Cydia里卸载,优点是卸载过程和提示信息很详细,全图形界面操作,同时也提供了重新安装的选项;
以dpkg-rPackage_ID命令或dpkg-PPackage_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:installokinstalled信息,否则会写入其它状态数据,比如Unpacked(未解包数据)、Failed-config(脚本未能成功执行)、Half-installed(安装失败等);重新加载数据库并解除锁定 。
deb的卸载过程如下:
读取数据库并锁定;
根据软件标识搜寻数据库;
检查是否有软件依赖于待卸载的软件,如果有则提示,并中断卸载;
执行prerm脚本(如果有);
读取/var/lib/dpkg/info/XXX.list文件,并删除list文件中记录的全部文件和非空文件夹;
运行postrm脚本;
如果卸载命令是dpkg-r,则保留status中的记录并改为Status:Notinstalled;如果卸载命令是dpkg-P,则删除全部数据;

推荐阅读