在嵌入式系统中使用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)
上一篇 2022年6月11日 上午8:00
下一篇 2022年6月11日 上午8:00


相关推荐

  • SQL HAVING用法详解

    SQL HAVING用法详解

    HAVING子句对GROUPBY子句设置条件的方式与WHERE和SELECT的交互方式类似。WHERE搜索条件在进行分组操作之前应用;而HAVING搜索条件在进行分组操作之后应用。HAVING语法与WHERE语法类似,但HAVING可以包含聚合函数。HAVING子句可以引用选择列表中显示的任意项。
     
    下面的示例按产品ID对SalesOrderDetail进行了分组,并且只包含那些订单合计大于$1,000,000且其平

    2022年6月18日
    43
  • 导弹防御系统(dfs+最长上升子序列)

    导弹防御系统(dfs+最长上升子序列)原题连接/为了对抗附近恶意国家的威胁,R 国更新了他们的导弹防御系统。一套防御系统的导弹拦截高度要么一直 严格单调 上升要么一直 严格单调 下降。例如,一套系统先后拦截了高度为 3 和高度为 4 的两发导弹,那么接下来该系统就只能拦截高度大于 4 的导弹。给定即将袭来的一系列导弹的高度,请你求出至少需要多少套防御系统,就可以将它们全部击落。输入格式输入包含多组测试用例。对于每个测试用例,第一行包含整数 n,表示来袭导弹数量。第二行包含 n 个不同的整数,表示每个导弹的高度。当输入测试用例

    2022年8月8日
    12
  • 图书馆借阅系统「建议收藏」

    图书馆借阅系统一、图书馆借阅系统是对书籍信息操作的信息管理系统。书籍信息包括书名、作者、编号、是否借出。本系统针对两类用户(图书管理员和学生)使用,对于图书馆管理员,可以进行查看书籍列表、查找书籍、新增书籍信息、删除书籍、退出登录操作;对于学生,可以进行查看书籍列表、查找书籍、借阅书籍、归还书籍、退出登录操作。二、代码部分1.book包的建立Book类的建立对于图书馆借阅系统,把书看作一个对象,根据该book所具有的属性,定义一系列书籍的私有属性,以及对这些属性进行操作的访问器(get())和设置器

    2022年4月12日
    50
  • OpenClaw真正“保姆级”的环境配置 + 使用教程

    OpenClaw真正“保姆级”的环境配置 + 使用教程

    2026年3月14日
    5
  • 如何把Eclipse改成中文版

    如何把Eclipse改成中文版一 打开浏览器 输入 http www eclipse org babel downloads php 如图所示 BabelLanguag 开头的一栏下面就是各个 eclise 版本的语言包 此处以 Indigo 版为例 二 目标锁定 BabelLanguag 行 将下面对应的网址复制到剪贴板 三 打开 eclipse 依次选择菜

    2026年3月19日
    2
  • Druid连接池的意义以及使用

    Druid连接池的意义以及使用建立数据库连接耗时耗费资源,一个数据库服务器能够同时建立的连接数也是有限的,在大型的Web应用中,可能同时会有成百上千的访问数据库的请求,如果Web应用程序为每一个客户请求分配一个数据库连接,将导致性能的急剧下降。数据库连接池的意义在于,能够重复利用数据库连接(有点类似线程池的部分意义),提高对请求的响应时间和服务器的性能。连接池中提前预先建立了多个数据库连接对象,然后将连接对象保存到连接池中…

    2022年7月23日
    8

发表回复

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

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