- 功勋
- 689 点
- 积分
- 5865
- 阅读权限
- 200
- 精华
- 13
- UID
- 5
- 帖子
- 6562
- 威望
- 4312 点
- 黄金
- 10544 金币
- 在线时间
- 4573 小时
- 注册时间
- 2005-5-13
- 最后登录
- 2025-12-27
   
- UID
- 5
- 帖子
- 6562
- 威望
- 4312 点
- 黄金
- 10544 金币
- 在线时间
- 4573 小时
- 注册时间
- 2005-5-13
- 最后登录
- 2025-12-27
|
发表于 2019-7-18 11:56:12
|显示全部楼层
众所周知ipk文件的使用,我就不啰嗦了。那ipk文件是怎么来的呢?
正统来说,应该是由源代码使用相应SDK编译得到的。
但这样做太麻烦了,有时我们只是想打包定制自己的配置文件。
其实十年前早有人想到了这个需求,且写了生成工具,是一个脚本叫ipkg-build。
这个工具被改进之后收在了SDK的scripts/ipkg-build。
使用方法是酱婶儿地:
先建立临时目录
mkdir /tmp/oshome
目录下就是ipk的结构,通常可以有/tmp/oshome/usr/bin和/tmp/etc
分别是放可执行程序和配置文件
还需要有一个/tmp/oshome/CONTROL目录,内有control文件。内容类似于:
- Package: oshome
- Version: 1.0
- Architecture: mipsel_24kc
- Maintainer: LuckyStar <[url=mailto:LuckyStar@oshome.com]LuckyStar@oshome.com[/url]>
- Section: base
- Priority: optional
- Description: This package provides oshome, which does nothing.
- Source: [url=http://www.oshome.com]http://www.oshome.com[/url]
复制代码
Architecture一项可以用opkg print-architecture来确认,可以是all,Section一项可以是net等。
补充一点是潘多拉就修改了这项,后面加了“_dsp",所以对应潘多拉就是mipsel_24kec_dsp。
这个问题以至于他的ipk无法装到OpenWRT上,OpenWRT的ipk也无法装到潘多拉上。
准备齐全后就可以打包了,打包的姿势是酱婶儿地:
scripts/ipkg-build -o root -g root /tmp/oshome /tmp
之后在/tmp下就可以找到oshome_1.0_misp.ipk了
顺路一提醒,/tmp目录重启会清空。
补充在ubuntu下打包调用data时日期格式会出错,所以需要在脚本头部增加
alias date="date \"+%Y-%m-%d %H:%M:%S\""
附件为我用在ubuntu下的ipkg-build脚本
|
|