关于openwrt的IPK

嗯,openwrt的安装程序是用IPK来安装的。那么我就来解释一下IPK这个神奇的东西好了。

其实IPK这种东西我很早就接触了,所以对它是再熟悉不过了(IPK文件是基于WebOS手机系统的应用文件)。

首先,IPK是个tar压缩包,安装其实就是通过解压到系统根目录来完成安装的。所以,ipk的安装是覆盖安装。也就是说,如果你之前安装过,然后自己有改动程序的话,再次安装会覆盖掉原来的文件,那你的改动就会被覆盖掉了。所以,如果是重要的改动记得备份。

其次,来是说ipk里的结构。
IPK包里首先是有3个文件,分别是:

  • debian-binary      ##版本信息,一般写的都是2.0……这个无关紧要……无视掉……

  • data.tar.gz           ##安装包的数据包,主要的安装文件都在这里,通过解压这个文件到根目录来达到安装的目的

  • control.tar.gz       ##安装配置文件,里面放的是安装包的配置脚本。

这里主要来说明一下data和control这2个包。
1. data里的文件都是按照系统根目录来建立文件目录放至安装的程序的。这样在解压的时候就会自动的覆盖对应的文件夹和文件。
比如如果要把一个叫做test.sh的文件安装到/usr/local/bin里,那么data里的文件和文件夹夹结构就应该和安装目标是一样的:/usr/local/bin/test.sh。这样执行解压的时候就可以直接自动覆盖安装到对应的目录去了。

2. 然后是control包,这个包里一般有preinst、postinst、prerm和postrm这几个文件。
这些文件都是Linux的sh脚本,它们对应的功能是这样的:

  • preinst(安装前执行)

  • postinst(安装完成执行)

  • prerm(卸载前执行)

  • postrm(卸载完成执行)


就比如说,

如果你需要在安装test.ipk安装包前删掉 /tmp 里的所有文件,那么你就在preinst里写sh命令

rm -r /tmp/*

如果你需要在安装完成后输出个日志文件,你就在postinst文件里写sh命令

echo '安装完成' > /tmp/test.ipk.log



本文章由作者:佐须之男 整理编辑,原文地址: 关于openwrt的IPK
本站的文章和资源来自互联网或者站长的原创,按照 CC BY -NC -SA 3.0 CN协议发布和共享,转载或引用本站文章应遵循相同协议。如果有侵犯版权的资 源请尽快联系站长,我们会在24h内删除有争议的资源。欢迎大家多多交流,期待共同学习进步。

相关推荐