0


第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中一致,
在这里插入图片描述

关注“万物互联技术”微信公众号获取更多内容

标签: OpenWrt opkg 包管理

本文转载自: https://blog.csdn.net/Atlas12345/article/details/129413726
版权归原作者 马小橙 所有, 如有侵权,请联系我们删除。

“第7章 OpenWrt-opkg包管理”的评论:

还没有评论