OpenWrt开发之自建opkg源

OpenWrt开发之自建opkg源

本站内容版权属于本人。转载须告知本人,写明出处,并在文首提供指向本站对应文章的链接。
本文链接:OpenWrt开发之自建opkg源

当我们编译好一些包的时候,肯定是想让它能方便地使用。比如更新了路由器,又没有把自己的包内置到镜像里面去,一般就得用opkg来安装。手动安装就需要把包保存在本地,用的时候上传,验证,完成。像OpenWrt官方源里面的包都不需要上传这一步,就在列表里面选,或者直接用命令,给个包名就能安装了。和官方源一样,我们也可以自建一个opkg源,让安装变简单。

准备工作

在《如何在OpenWrt上开发》一篇中,我建了一个本地Feed(源)。那么这里就接着这篇继续。

为了能让源里面的包有签名,还需要生成一个密钥对。在openwrt目录在执行以下内容来生成密钥对。其中key-build是私钥,key-build.pub是公钥,“my key”是注释,可以随便写。

编译包

openwrt目录下执行以下命令来编译包,如果有多个包也逐个编译。

生成包索引

openwrt目录下执行以下命令来生成包索引。

如果没出错,就能在openwrt/bin/packages/<平台>/myfeed/目录下找到.ipk后缀的文件,同时还会有以Package开头的文件,这些就是opkg源需要的所有内容了。

部署opkg源

把上面的目录放到一个能展示文件目录的HTTP服务器上就行了。假设这里把它们放在了http://feed.example.com/myfeed/下面。具体的方式在此不详述,可以参考nginx的文档。

使用opkg源

修改路由器的配置文件/etc/opkg/customfeeds.conf,加上这么一行,也可以在界面上改:

只是这样还是不够的,因为给包签名用的密钥不是OpenWrt官方的,需要把自己的key也加到路由器上。

在开发目录openwrt下运行:

会得到一串16个字符,64位的哈希值,比如我这里得到了ec5dd13aa2d483a3。

然后把公钥复制到路由器上,文件名改为这串哈希值:

然后就可以运行opkg命令来安装自己的包了:

总结

容易出问题的就是密钥这部分,其他的都还是很直接的。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

*

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据