opkg 更新软件[通俗易懂]

opkg 更新软件[通俗易懂]opkg不同的版本存在不同的配置文件,一般常用的是/etc/opkg.conf、/etc/opkg/customfeeds.conf和/etc/opkg/distfeeds.conf三个。这三个配置文件将会影响opkg运行时软件资源的取向,opkg软件源定义在/etc/opkg/distfeeds.conf(更新/etc/opkg.conf并没有作用)文件中,包含软件源索引的目录路径。下…

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

opkg 不同的版本存在不同的配置文件,一般常用的是 /etc/opkg.conf 、/etc/opkg/customfeeds.conf 和 /etc/opkg/distfeeds.conf三个。这三个配置文件将会影响opkg运行时软件资源的取向,opkg软件源定义在/etc/opkg/distfeeds.conf(更新/etc/opkg.conf并没有作用)文件中,包含软件源索引的目录路径。下面就软件包升级进行简单的介绍。

本地仓库 — 配置opkg 从本地获取软件包

在通过修改 /etc/opkg/distfeeds.conf 达到在opkg获取文件源时,到相应的目录下载。修改如下:

src/gz %n_base file:/tmp/packages/base
src/gz %n_kernel file:/tmp/packages/kernel

以上为例,在执行opkg update时,将会以本地 /tmp/packages/base 目录以及 /tmp/packages/kernel 目录作为软件源,下载 Packages.gz 文件保存到 机器的 /var/opkg-lists 目录下,分别以%n_base 和 %n_kernel 命名。在执行 opkg update 之后,再通过 opkg upgrade <pkg> 升级某一个软件包,假设 该pkg位于 /tmp/packages/base 源,将会到 /tmp/packages/base 目录下载 pkg.ipk 并安装。如果安装过程报错,可根据具体错误,参考 OpenWrt 官网中的 OPKG软件包管理 中 强制性选项 进行操作。
以上是opkg本地仓库软件资源的升级过程,其他服务器的也就都类似,只是资源路径相应替换。

如何生成 .ipk 包

opkg 工具 (一个 ipkg 变种) 是一个用来从本地软件仓库或互联网软件仓库上下载并安装 OpenWrt 软件包的轻量型软件包管理器。所以,这个东西在OpenWrt上肯定是有的,那么OpenWrt是如何操作的。
在使用 OpenWrt 时会发现,最后是通过 scripts/ipkg-build 这个脚本实现的,调用如下:

ipkg-build -c -o 0 -g 0  源文件路径  ipk目标文件路径

脚本有些长,就不一一罗列,主要就是检查该package的主要文件是否存在,然后再打包压缩为 .ipk 文件。该文件实质是 .tar.gz 文件,解压之后,将会有三个文件,分别是 control.tar.gz 、data.tar.gz 和 debian-binary。debian-binary 文本文件包含二进制软件包的版本号,该版本号应该是 2.0 。control.tar.gz 文件包含控制文件、postinst 文件和 prerm 文件,postinst 文件包含了有关在安装了该软件包后如何做的指令,而 prerm 文件则包含了除去指令。control.tar.gz 可能还包括另外两个文件:一个文件名为 conffiles,包含有关软件包配置文件的信息,另一个名为 md5sums,包含软件包的 MD5 校验和。
data.tar.gz 包含软件包的实际“有效载荷”。即,它包含一个带有程序全部相关文件的文件系统,这些文件在安装时会被放到系统的文件系统中适当的位置。
通过以上解析,简单的之后,手动造一个 .ipk 文件的主要操作。

如何生成 Packages.gz

在使用 opkg update 更新软件源时,主要是下载 Package.gz 文件,通过该文件确认软件包有没有更新。
那么,该文件是怎样生成的呢。在OpenWrt的源码中,存在 scripts/ipkg-make-index.sh 脚本,通过该脚本生成相应的 Packages.gz 。该脚本使用如下:

$(curdir)/index: FORCE
	@echo Generating package index...
	@for d in $(PACKAGE_SUBDIRS); do ( \
		mkdir -p $$d; \
		cd $$d || continue; \
		$(SCRIPT_DIR)/ipkg-make-index.sh . 2>&1 > Packages.manifest; \
		grep -vE '^(Maintainer|LicenseFiles|Source|Require)' Packages.manifest > Packages && \
			gzip -9nc Packages > Packages.gz; \
	); done
ifdef CONFIG_SIGNED_PACKAGES
	@echo Signing package index...
	@for d in $(PACKAGE_SUBDIRS); do ( \
		[ -d $$d ] && \
			cd $$d || continue; \
		$(STAGING_DIR_HOST)/bin/usign -S -m Packages -s $(BUILD_KEY); \
	); done
endif

显示,进入软件包目录,然后执行 ipkg-make-index.sh 脚本,相应的生成packages 信息,压缩生成 Packages.gz。

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

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

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


相关推荐

  • 小记 HTML5 file对象

    小记 HTML5 file对象

    2021年8月30日
    73
  • 匹配滤波器及matlab仿真

    匹配滤波器及matlab仿真随机信号处理笔记:匹配滤波器——南京理工大学顾红老师的《随机信号处理》浅析文章目录随机信号处理笔记:匹配滤波器1.线性滤波器输出端信噪比2.匹配滤波器的传输函数和冲激响应2.1复函数的施瓦兹不等式2.2传输函数求解3.匹配滤波器的性质3.1匹配滤波器的最大峰值信噪比3.2匹配滤波器的幅频特性相频特性3.3匹配滤波器的物理可实现性3.4输出信号和噪声3.5匹配滤波器的时延适应性3.6匹配滤波器的频移不适应性3.7输出信号频谱与输入信号频谱关系4.匹配滤波器的信号处理SNR增益4.1matlab仿真匹配

    2022年6月1日
    49
  • 微信开放平台—-微信扫码登录

    微信开放平台—-微信扫码登录告知:所有操作是基于域名已备案,并且具有企业级微信公众号!1.准备工作   1.1.注册微信开放平台帐号       https://open.weixin.qq.com   1.2.创建应用(网站应用),填写资料https://open.weixin.qq.com/cgi-bin/appcreate?t=manage/createWeb&amp;type=…

    2022年6月11日
    55
  • java8 小技巧保证分组groupingBy后排序不变

    java8 小技巧保证分组groupingBy后排序不变问题:遇到一个小问题,查询出来一组数据后,按照其中的属性进行groupBy分组,分组后要保证顺序不变。排查首先去api中查找解决//一个参数publicstatic<T,K>Collector<T,?,Map<K,List<T>>>groupingBy(Function<?superT,?ex…

    2022年8月21日
    10
  • 微积分常用公式

    微积分常用公式一 基本导数公式二 导数的四则运算法则三 高阶导数的运算法则四 基本初等函数的 n 阶导数公式五 微分公式与微分运算法则六 微分运算法则七 基本积分公式八 补充积分公式九 下列常用凑微分公式十 分部积分法公式十一 第二换元积分法中的三角换元公式十二 重要公式十三 下列常用等价无穷小关系十四 三角函数公式十五 几种常见的微分方程

    2025年8月26日
    2
  • 电商网站的商品详情页系统架构

    电商网站的商品详情页系统架构电商网站的商品详情页系统架构1小型电商架构:小型电商网站的页面展示采用页面全量静态化的思想。数据库中存放了所有的商品信息,页面静态化系统,将数据填充进静态模板中,形成静态化页面推入Nginx服务器。用户浏览网站页面时,取用一个已经静态化好的html页面,例如freemarker,thymeleaf等,直接返回回去,不涉及任何的业务逻辑处理。例如下面一个简单的魔板…

    2022年9月26日
    3

发表回复

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

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