iOS越狱deb插件的制作
dpkg命令行教程
deb安装包的制作
介绍 Cydia Sileo都是基于Debian开发的, 所以插件都是打包成.deb格式
deb包是Debian软件包格式,文件扩展名为.deb。是Debian系统(包含Debian和Ubuntu等)专属安装包格式。
deb包在Linux操作系统中类似于windows中的软件包(exe),几乎不需要什么复杂的编译即可通过鼠标点击安装使用。
制作deb包的核心文件(夹)
- DEBIAN 文件夹
- control 文件,位于DEBIAN文件夹中,主要包含deb包的安装描述信息
- preinit 文件(可选),位于DEBIAN文件夹中,安装处理文件,在解包前执行
- postinit 文件(可选),位于DEBIAN文件夹中,安装处理文件,在解包后执行
- prerm 文件(可选),位于DEBIAN文件夹中,卸载处理文件,在删除关联文件前执行
- postrm 文件(可选),位于DEBIAN文件夹中,卸载处理文件,在删除关联文件后执行
目录结构如下:
/DEBIAN/
/DEBIAN/control
/DEBIAN/preinit(可选)
/DEBIAN/postinit(可选)
/DEBIAN/prerm(可选)
/DEBIAN/postrm(可选)
/opt/(可选)
/usr/lib(可选)
步骤
1. 创建deb包的文件夹
在制作deb包时,该文件夹是不会打包的,而是会把该文件夹当作是系统的根目录,因此也可以称该文件夹为根文件夹或根目录,里面的所有文件和文件夹(除DEBIAN外)在安装时都会按照其在根文件夹的相对路径安装到Linux系统中
mkdir myApp
2. 在deb包根路径中创建DEBIAN文件夹
cd myApp
mkdir DEBIAN
3. 创建control
cd DEBIAN
touch vi control
control文件的内容
Package: AppName
Version: 1.0
Section: Application
Priority: optional
Architecture: armhf
Maintainer: -
Description: the application description.
说明:
Package: 软件包的名称
Version: 版本号
Section: 软件的类别,如 Utils, Net,Application,Library
Priority: 软件对于系统的重要程度,如 required, standard, optional, extra
Architecture: 软件包结构,如基于i386, amd64,armhf 等
Maintainer: 软件维护人员
Description: 描述
4. 创建 preinit、postinit、prerm、postrm 等文件
根据实际需要创建相应的文件,在文件中编写需要执行的脚本
例如:
创建postinit文件
touch postinit
postinit的内容
sudo ldconfig
由于这几个文件是需要在安装或卸载时执行的,因此需要给这几个文件加上可执行的权限
sudo chmod a+x postinit
5. 复制关联文件到deb包中
将deb包根目录当作是Linux系统的根目录,将需要安装的程序或文件按照指定路径存放。
- 示例1
可执行程序 demo 需要安装到Linux系统的 /opt/ 中,则在deb包根目录中创建一个 opt 文件夹,并把 demo 复制到该文件夹中。 - 示例2
调用库 libmyapp.so 需要安装到Linux系统的 /usr/lib 中,则在deb包根目录中创建一个 usr 文件夹,然后在 usr 文件夹中再创建 lib 文件夹,最后将 libmyapp.so 文件复制到 /usr/lib 中
6. 打包生成deb包
切换当前目录到deb包文件夹所在的目录,执行打包的命令
sudo dpkg -b 打包的目录 deb安装包文件名称
dpkg命令的使用
一、安装
sudo dpkg -i deb文件名
示例:
sudo dpkg -i slave-1.0.0.deb
二、卸载安装包
sudo dpkg -P 安装包名称
示例:
sudo dpkg -P slave
三、查看程序安装包的信息
sudo dpkg -s 安装包名称
示例:
sudo dpkg -s slave
四、编译打包deb文件
sudo dpkg -b 打包的目录 deb安装包文件名称
示例:
sudo dpkg -b slave-builder slave-1.0.0.deb