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)
上一篇 2022年6月13日 上午9:36
下一篇 2022年6月13日 上午9:46


相关推荐

  • mysql 家谱树查询_GitHub – chenwei/FamilyTreeView: 家谱树绘制Demo

    mysql 家谱树查询_GitHub – chenwei/FamilyTreeView: 家谱树绘制DemoFamilyTreeVi 重大改进 增加仿 亲友 App 的家谱 与之前的没有任何关联 可以直接翻到第二部分 仿亲友 家谱 部分进行阅读家谱树绘制 Demo 主要使用自定义 ViewGroup 和使用 canvas 进行划线 现阶段实现了自己 配偶 兄弟姐妹 父母 祖父母 外祖父母 子女和儿媳妇 女婿以及孙子 共五代的绘制 加入了 touch 事件可以移动 代码可能写得相对比较死 基本只能使用于家谱展示 还

    2026年3月16日
    1
  • 什么工厂前景好_干什么行业最赚钱

    什么工厂前景好_干什么行业最赚钱农村创业不少人近期开始关注一些加工厂项目,尤其是小型加工厂这几年在乡镇地区超级火的,这些项目成本低利润高,而且招人也容易。那么,在农村做什么小加工厂赚钱呢?下面一起来探讨下最有前景的小型工厂项目,都是一些适合在乡镇开的加工厂年赚百万不是问题,赶紧来了解下吧。最有前景的小型工厂做什么赚钱1、木炭加工木炭是生活最常用的燃料,木炭的用途非常广,可用于冶金行业、建筑行业、干燥行业、医用行业等。一般常见的木炭有果木炭,即用原木砍伐后经过燃烧与蒸馏等加工工序而成的燃料,它可用于家庭燃料,也可用于野外烧烤,是一

    2025年11月1日
    5
  • Java集合List用法总结

    Java集合List用法总结转自:https://www.jianshu.com/p/25aa92f8d681Java集合作为一个Developer,Java集合类是我们在工作中运用最多的、最频繁的类。相比于数组(Array)来说,集合类的长度可变,更加适合于现代开发需求;Java集合就像一个容器,可以存储任何类型的数据,也可以结合泛型来存储具体的类型对象。在程序运行时,Java集合可以动态的进行扩展,随着元素的增加而扩大。在Java中,集合类通常存在于java.util包中。Java集合主要由2大体系构成,分别是Co

    2022年7月7日
    35
  • lte频谱带宽_lte信道带宽可以配置为

    lte频谱带宽_lte信道带宽可以配置为1.频带(Band)所谓频带,指代的是一个频率的范围或者频谱的宽度,即无线解码器的最低工作频率至最高工作频率之间的范围,单位是Hz。为了方便起见,在LTE中,使用数字1-43来表示不同的频带(36101-V10.21.0版本协议),从而指代不同的频率范围。协议36101规定了目前LTE所有的频带、该频带的频率范围和LTE制式,如下图所示。需要注意的是,频带1-32的上下行频率范围是不重叠的,即上行

    2022年10月11日
    4
  • 腾讯智能体框架 Youtu-Agent 开源,搭建 Agent 只需两步

    腾讯智能体框架 Youtu-Agent 开源,搭建 Agent 只需两步

    2026年3月16日
    3
  • Android性能分析工具“TraceView”,“Systrace UI”

    Android性能分析工具“TraceView”,“Systrace UI”TraceViewTra 是 AndroidSDK 自带的工具 用来分析函数调用过程 可以对 Android 的应用程序以及 Framework 层的代码进行性能分析 它是一个图形化的工具 最终会产生一个图表 用于对性能分析进行说明 可以分析到应用具体每一个方法的执行时间 使用可以非常直观简单 分析性能问题很方便 使用方法在使用 TraceVeiw 分析问题之前需要得到

    2026年3月17日
    5

发表回复

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

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