第7章 OpenWrt-opkg包管理

第7章 OpenWrt-OPKG

本章讲解了OPKG包管理工具。
OPKG(Open/OpenWrt Package)是 IPKG(Installing Packages)衍生版本,可以用于安装应用层ipk和驱动ipk等,在安装时会自动解决安装软件时的包依赖关系,如果遇见错误,就中止安装。

  • OPKG工作原理

opkg命令执行与以下三个文件有关:
/etc/opkg.config: opkg的配置文件,内容如下:
在这里插入图片描述

dest开头这几行是定义了安装目录,格式: dest 安装目录名称 实际安装目录
安装目录定义之后,目的地址名称就可以在安装命令中引用了。安装时目的地址名称只能引用在/etc/opkg.conf 中定义的地址名称,例如“-d ram”表示软件将安装到临时目录 /tmp 下。

/usr/lib/opkg:保存的是已经安装的软件包信息,相当于Windows 操作系统中的注册表,它包括三个部分:
在这里插入图片描述

status文件表示软件包的安装状态,如下所示:
在这里插入图片描述

lists文件夹为空,具体什么作用还需要在看一下,
info文件夹是记录的每个软件包的文件列表、控制信息和依赖文件信息,如下所示:
在这里插入图片描述

  • 常用的opkg指令
  1. 软件包更新:opkg update
    该命令用于更新可以安装的软件包列表。
    该命令不需要参数,执行时从服务器地址下载软件包列表文件并存储在/var/opkg-lists/目录下。
    OPKG在安装或升级时需要读取这个文件,这个文件代表当前仓库中所有可用的软件包。

  2. 软件包安装:opkg install
    该命令用于安装软件包,需要一个参数,传递一个软件包名称。如果软件包之间有依赖关系,会自动下载所有被依赖的软件包,并依次将所有被依赖的软件包安装上。

  3. 软件包卸载:opkg remove
    该命令用于卸载软件包,需要一个参数,传递一个软件包名称。
    需要注意的是,在安装时自动安装的软件包并不会删除,需要自己手动删除,或者在卸载软件包的同时增加 (–autoremove)参数将不需要的依赖包也删除。

  4. 查询可使用的软件包:opkg list

  5. 查询已经安装的软件包:opkg list-installed
    在这里插入图片描述

  6. 列出已修改过的配置文件:opkg list-changed-conffiles
    在这里插入图片描述

  7. 列出属于某软件包中的所有文件: opkg files pkgname
    在这里插入图片描述

  8. 列出依赖某个包的软件包:opkg whatdepends /[-A/] pkgname
    在这里插入图片描述

  9. 查询文件属于哪个软件包:opkg search file_path

ipk包结构

我们以第三章生成的hello world ipk为例,来了解一下ipk文件的构成。

ipk文件的本质是tar.gz压缩包,解压缩完成后生成3个文件,
在这里插入图片描述

debian-binary:debian-binary 是一个纯文本文件,包含字符串“2.0”, 表示格式为 debian2.0 格式。
在这里插入图片描述

data.tar.gz包含/bin/hello_world,表示安装时需要将文件安装到什么位置。
在这里插入图片描述

control.tar.gz解压缩后发现包含“control”、“postinst”、“prerm”。
在这里插入图片描述

“control”文件内容包含软件包名称、版本、依赖关系、所属分类、状态、优先级、平台架构和软件描述等。
在这里插入图片描述

“postinst”、“prerm”分别是执行安装前和卸载前需要执行的shell脚本,因为我没有在Makefile中进行自定义,所以这linagg
文件中的内容都是默认值。
在这里插入图片描述

我们在hello world工程下的Makefile中增加如下内容,
在这里插入图片描述

control.tar.gz中会增加一个post-pkg文件,内容跟Makefile中一致,
在这里插入图片描述

关注“万物互联技术”微信公众号获取更多内容在这里插入图片描述

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值