查看: 3470|回复: 0

关于openwrt的IPK

[复制链接]
  • TA的每日心情
    开心
    2019-6-25 09:54
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2014-11-19 23:36:49 | 显示全部楼层 |阅读模式
    分享到:
    嗯,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其他的也一样的道理。如果有兴趣自己做ipk的同学可以参考一下~
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-4-20 04:26 , Processed in 0.116488 second(s), 18 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.