在openwrt下开发IPK的包正规方法是用制作镜像时生成的sdk里标准制作package的方法生成,通过引入sdk中的脚本自动生成IPK包,不过在有的情况下可能你有二进制文件了,这时候可以用下面的方法生成ipk,我的文章主要参考了如下地址:
http://ftp.nluug.nl/ibiblio/distributions/pdaxrom/download/contrib/docs/making_ipkg_howto.html
首先说明的是ipk实际上是一个压缩包,压缩的格式是.tar.gz,其实可以找到镜像里的任何一个Ipk包可以直接用tar解压。
ipk包包括三个文件,control.tar.gz,data.tar.gz,debian-binary,前俩个都是压缩文件,最后是一个文本,文件的内容就是2.0
control文件包括一个control文件,用于描述包的信息,包括如下内容以busybox为例:
Package: busybox 包名称
Version: 1.30.1-6 版本
Depends: libc 依赖
Source: package/utils/busybox 源文件
SourceName: busybox 源文件名字
License: GPL-2.0 遵守的license
LicenseFiles: LICENSE archival/libarchive/bz/LICENSE license文件
Section: base make config 时位于哪一个包下
Essential: yes
Maintainer: Felix Fietkau <nbd@nbd.name>
Architecture: mipsel_24kc 架构 可以是x86,arm......
Installed-Size: 208147
Description: The Swiss Army Knife of embedded Linux.
It slices, it dices, it makes Julian Fries. 描述
然后就是几个脚本文件 preinst, postinst, prerm, postrm
preinst 安装前运行的脚本
postinst 安装后运行的脚本
prerm 删除之前运行脚本
postrm 删除之后运行脚本
data.tar.gz 中包括了 运行时候的安装目录,包括bin ,etc等,
具体的内容可以参考任何一个Ipk文件