openwrt下ipk生成过程及原理

大家都知道openwrt的软件包是ipk格式的,使用opkg命令来安装软件包

那么请问ipk是如何生成的?ipk文件本质是什么?

不过不知道也无妨,因为我们一般开发的无需知道这个,只要知道怎么使用即可!但是。。。我蛋疼,必须追根究底的看下!

linux下生成ipk

用百度搜索基本都是没用的,没有人点到问题上!于是谷歌。。

找到了一篇文章:http://ftp.nluug.nl/ibiblio/distributions/pdaxrom/download/contrib/docs/making_ipkg_howto.html

标题为:How to create an ipk,着太有用了,虽然不是说openwrt上如何实现的,但是会有很多提示,也讲解了ipk如何生成的。

重要的东西在最后

8. Finally: the ipk

8.1 Creating the package

Don’t try to make the ipk by hand. Use the mkipkg provided here. The script is also provided in both the cross and native sdk but it is not compatible some recent versions of tar.

mkipkg will uncover the possible errors in your control file or elsewhere. If mkipkg fails double-check your control file.

When you have a tree structure like:

just do:

and the ipk will be created for you.

ok!从上面可以看出生成ipk需要的文件和文件夹,以及需要的命令mkipkg,有兴趣的同学可以在linux试试!

openwrt上ipkg的实现

那么在openwrt的sdk里面怎么实现的呢,顺着上面的思路,find搜索下ipkg相关的文件

从上面一部分的搜索结果看到一个特殊的,./scripts/ipkg-build这个文件,查看下这个文件的内容,发现正是这个bash脚本文件生成相关的ipk

文件内容太长,我就不贴出来了,仅仅贴出最后几行重要的命令,里面echo中带有jack:的都是自己加入的打印,更好的了解点ipk生成过程

从上面的脚本可以看出,生成ipk之前先生成了几个重要的文件debian-binary data.tar.gz control.tar.gz,分别保存版本信息、数据内容、ipk的信息,安装方法等

从最后的生成ipk的过程看,其实ipk格式就是tar.gz格式,只是改了个名字而已!

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
离线安装OpenWRTIPKOpenWrt Package Kit)包通常是在没有网络连接的情况下更新或添加软件包的步骤,因为IPK文件包含了预编译的软件包。下面是基本的离线安装过程: 1. **下载所需IPK文件**: - 首先,你需要知道你要安装的具体IPK包的名字以及其版本。访问OpenWRT的软件仓库(如https://downloads.openwrt.org/固件/packages/)找到对应包的URL和版本。 - 下载到你的本地存储设备,比如电脑或者USB驱动器。 2. **将IPK文件复制到OpenWRT设备**: - 如果你的OpenWRT设备可以通过USB或SD卡接入电脑,直接将IPK文件复制到相应位置。 - 或者,如果设备支持TFTP传输,你可以设置TFTP服务器并将IPK文件放在服务器上,然后设备通过TFTP进行下载。 3. **配置OpenWRT**: - 登录到OpenWRT的终端或Web界面,进入`opkg`命令行工具。 - 使用`opkg update`(注意这一步通常需要网络,但如果之前已经下载了索引文件,则可以忽略)确保系统知道在哪里查找软件包。 - 如果`opkg update`提示没有可用的索引,使用`opkg setsrc`指定你的本地目录作为新的源,例如`opkg setsrc local /path/to/downloaded/ipk/`。 4. **安装IPK包**: - 使用`opkg install [package-name]`命令安装你的IPK文件。记得替换`[package-name]`为你要安装的具体包名。 5. **确认安装**: - 安装完成后,检查是否成功通过`opkg list-installed`命令查看新安装的包是否在列表中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值