在嵌入式系统中使用opkg做版本升级

在嵌入式系统中使用opkg做版本升级一、opkg工具版本使用opkg0.3.5版本,原buildroot自带是opkg0.3.0版本,opkg0.3.0版本不支持.gz文件的解压,所以需要升级到opkg0.3.5版本。opkg工具的默认配置文件目录:/etc/opkg/opkg.conf包服务器地址:http://sylk-sh-buffer.oss-cn-beijing.aliyuncs.com/pac…

大家好,又见面了,我是你们的朋友全栈君。

 

一、opkg工具版本

使用opkg0.3.5版本,原buildroot自带是opkg0.3.0版本,opkg0.3.0版本不支持.gz文件的解压,所以需要升级到opkg0.3.5版本。

opkg工具的默认配置文件目录:

   /etc/opkg/opkg.conf

包服务器地址:http://sylk-sh-buffer.oss-cn-beijing.aliyuncs.com/packageBuffer/update/packages/base

 

二、.ipk包的打包

1、打包命令:ipkgmake 包名 版本号 版本信息文件 文件列表

 

版本信息文件(control文件)内容格式:

Package:

Source:

Priority:

Section:

Maintainer:

Architecture: aarch64

Version:

Depends:

Description:

 

文件内容经调查可自定义增加,在包装完成后会安装在/var/lib/opkg/info目录下,文件为:包名.control,文件列表信息文件为:包名.list(记录安装的文件及目录信息)。

 

2、packages文件生成

使用工具命令:ipkg-make-index.sh ipk包目录

作用:将所有包的control信息、对应ipk包的md5sum和sha256sum校验值、包文件大小输出到Packages文件。

输出文件:Packages、Packages.gz

需要编译服务器支持md5sum、sha256sum校验工具。

Packages文件说明:此文件信息是记录包的control信息+包的md5sum+包的sha256sum+包文件大小,测试中信息字段有2个关键字段ArchitectureFilename2者缺一不可、信息错误也会导致安装失败;Architecture是运行安装系统的CPU体系、opkg install时会读取Architecture与当前系统信息进行匹配、如CPU体系为aarch64Filenameopkg install时要下载服务器上的包文件名(例如:cms-0.0.3.ipk)。

 

3、opkg命令相关

Opkg配置文件默认目录: /etc/opkg/opkg.conf

使用其它目录:opkg –f 配置文件目录

opkg install 包名|包路径

安装:

在嵌入式系统中使用opkg做版本升级

测试发现安装下载的ipk包在安装完后就删除了、本地找不到.ipk包。

 

卸载:

在嵌入式系统中使用opkg做版本升级

重新安装:

在嵌入式系统中使用opkg做版本升级

重新安装时没有提示下载ipk包,原因待调查

 

此外,测试opkg install不能同时安装同一个ipk包。

在一个包安装过程中,如果再install这个包,会有以下安装错误提示:

在嵌入式系统中使用opkg做版本升级

在安装完成后,再install这个包,会有以下安装错误提示:

在嵌入式系统中使用opkg做版本升级

 

opkg list-installed:显示已安装完包的信息。

在嵌入式系统中使用opkg做版本升级

 

opkg update:执行下载服务器端的Packages.gz文件,文件下载后,将解压的文件放到 默认目录/var/lib/opkg/lists下面,并重全名为barrier_breaker_base,这个文件里包含了服务器端Package里面所有的软件包的信息,

 

opkg info:显示包安装的相关信息,此信息与包的control文件信息不同

 

 

在嵌入式系统中使用opkg做版本升级

如上图,cms是在本地直接安装ipk包的,在信息里没有检验及包文件名等信息,perconn是从服务器端同步安装过的、信息里包含有校验、此信息是从/var/lib/opkg/lists/barrier_breaker_base文件里获取,barrier_breaker_base文件是从服务器下载下来的Packages文件。

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132237.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • BackTrack3(BT3激活成功教程wifi密码)

    BackTrack3(BT3激活成功教程wifi密码)BackTrack3(BT3激活成功教程)  准备工作  1、一个有可激活成功教程无线信号的环境。如我在家随便搜索出来的信号。  2、带无线网卡的电脑一台(笔记本台式机均可,只要无线网卡兼容BT3),我用的是三星NC10的上网本。  3、4G以上优盘一个(我用的是kingston8G的)  4、下载BT3,约900多兆。注:BT3全称BackTrack3,与我们常说的bt下载是完全不同的…

    2022年10月1日
    0
  • Java重命名文件

    Java重命名文件

    2022年1月17日
    39
  • 大数据应用实例[通俗易懂]

    大数据应用实例[通俗易懂]通过对全国各地不同时间段的购买华硕笔记本电脑的销售量进行大数据处理,将其通过汇总分析,即可制成图表的格式,使用户能对华硕笔记本销售量进行研究,可以查看出华硕笔记本最近的销售同比(与上一年的销售比较)与环比(与上月的销售比较),购买的人数地域分布量,及购买的人群年龄分布,性别分布等等首先就是对华硕笔记本最近的销售同比(与上一年的销售比较)与环比(与上月的销售比较),整体同比及移…

    2022年6月2日
    47
  • 项目7+1团队_激励团队冲刺的话

    项目7+1团队_激励团队冲刺的话项目Beta冲刺(团队7/7)

    2022年4月22日
    75
  • 内核态和用户态的区别[通俗易懂]

    内核态和用户态的区别[通俗易懂]当一个任务(进程)执行系统调用而陷入内核代码中执行时,我们就称进程处于内核运行态(或简称为内核态)。此时处理器处于特权级最高的(0级)内核代码中执行。当进程处于内核态时,执行的内核代码会使用当前进程的内核栈。每个进程都有自己的内核栈。当进程在执行用户自己的代码时,则称其处于用户运行态(用户态)。即此时处理器在特权级最低的(3级)用户代码中运行。当正在执行用户程序而突然被中断程序中断时,此时用户程序…

    2022年9月17日
    0
  • 代理服务器基本知识[通俗易懂]

    代理服务器基本知识[通俗易懂]代理服务器系列(一):基础知识2005年9月10日世界网络教研组编一、什么是代理服务器?代理服务器英文全称是ProxyServer,其功能就是代理网络用户去取得网络信息。形象的说:它是网络信息的中转站。在一般情况下,我们使用网络浏览器直接去连接其他Internet站点取得网络信息时,需送出Request信号来得到回答,然后对方再把信息以bit方

    2022年4月30日
    55

发表回复

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

关注全栈程序员社区公众号