Openwrt/LEDE软件源,更新Package.sig签名文件,解决Signature check failed问题

图片[1]-Openwrt/LEDE软件源,更新Package.sig签名文件,解决Signature check failed问题-LonHowe Blog

Openwrt/LEDE稳定版软件,驱动版本都比较旧,trunk版呢又更新的很快,系统装上几天又想要从官方服务器上使用opkg装软件可能就装不上了,所以最好的解决办法就是在本地搭建一个软件源,把正在使用的系统版本的所有软件保存下来。而且官方的源在国外,访问速度极慢,使用本地的源可以跑满内网带宽。

官方的软件源只有系统的基本软件和不多的功能插件,克隆到本地后,就有了对本地源完全的权限,我们就可以往源添加新编译的软件了。

为了保证软件的兼容性,一般来说添加到源上的软件都应该使用从相应的源提供的SDK打包,直接从系统源码和版本不一致的SDK打包的软件都有可能装不上。

给源添加软件首先肯定是把编译出来的ipk文件上传到服务器,接着就是在索引中添加新增的软件包的信息,在软件包生成的目录中我们可以发现除了我们选中的软件包之外还有三个文件生成——Packages,Packages.gz,Packages.manifest,这几个文件就是提供软件包的索引(在SDK下使用make package/xxxx/compile生成软件包后不会生成索引,要直接使用make),索引类似下面的一段内容。

得到索引信息之后就是把这些信息插到软件源服务器的索引中,最好按照软件包的字母顺序插入,尽量不要打乱原有文件结构。

更新了3个索引文件之后,先去路由里面修改源服务器,配置文件是/etc/opkg/distfeeds.conf,按照原来的格式把服务器地址改为本地服务器地址。

保存之后运行opkg update更新本地索引。

可以看到路由已经从本地的源服务器更新索引了,但是……我们修改过的那个base中的package签名不通过,上网搜索了一晚上,终于在openwrt官方论坛上找到了签名的生成方法。
首先,找到生成签名的工具-usign,ubuntu中apt安装不成功,这个工具在sdk目录/staging_dir/host/bin中,下面就可以跟着官方论坛上的方法生成签名了。

第一步,生成一对公钥和私钥,公钥用于路由对签名文件进行校验,私钥用于我们生成签名文件。

第二步,利用生成的私钥对服务器上的Packages文件生成签名文件,Packages文件不在当前目录的话要加上路径。

第三步,把签名文件上传到服务器上,把公钥上传到路由,在路由上新增我们生成的公钥。

最后,在路由上重新更新软件索引。

可以看到,签名通过了。接下来就可以用opkg直接从服务器上新编译安装软件了。

最后再写一个添加索引的注意事项。
有些包的索引会比服务器上的多了一些奇怪的东西,例如:

只要把多出来的Status和Essential项删掉就好。



微信扫描下方的二维码阅读本文

© 版权声明
THE END
喜欢就支持一下吧~
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容