OPKG(Open/OpenWrt Package)是一个轻量快速的软件包管理系统,是 IPKG 的克隆, 目前已成为开源嵌入式系统领域的事实标准。OPKG 常用于路由、交换机等嵌入式设备中, 用来管理软件包的下载、安装、升级、卸载和查询等,并处理软件包的依赖关系。功能和 桌面 Linux 操作系统 Ubuntu 中的 apt-get、Redhat 中的 yum 类似。
OPKG 是一个针对根文件系统全功能的软件包管理器。它不仅仅是在独立的目录安装软件,还可以用于安装内核模块和驱动等。OPKG 在安装时会自动解决安装软件时的包依赖关系,如果遇见错误,就中止安装。
当执行 opkg update
命令时, OPKG首先会读取配置文件 /etc/opkg.conf
文件, 这个文件保存了OPKG的全局配置信息。然后OPKG会根据配置地址下载软件包列表文件Packages.gz 到/var/opkg-list
目录下,这个文件是软件仓库中所有 软件列表及其依赖关系的清单,是使用 gzip 压缩的文件,这样在网络传输时所占用网络流 量比较小。软件安装之后的信息会保存在目录/usr/lib/opkg/
下面,包含状态文件,OPKG通过访问这个状态文件确定该软件是否已经安装、安装的版本、以及依赖关系是否满足等。
OPKG 用法
opkg update
用于更新可以安装的软件包列表
opkg install xxx
安装软件包
opkg remove xxx
卸载软件包(–autoremove)参数将不需要的安装包也删除
opkg upgrade xxx
升级软件包,一般只用来升级应用(非内核软件)。
opkg list
列出所有可用软件包
opkg list-installed
列出所有已安装软件包
opkg list-changed-conffiles
列出用户修改过的配置文件
opkg files <pkg>
列出属于这个软件包中的所有文件
opkg search <file>
列出提供file的软件包,需要传递文件的绝对路径
opkg find <regexp>
列出软件包名称和regexp正则表达式匹配的软件包
opkg info <pkg>
显示已安装pkg软件包信息
opkg download <pkg>
将软件包pkg下载到当前目录
opkg print−architecture
//列出安装包的架构
opkg whardepends [-A] [pkg]
针对已安装的软件包,输出依赖这个软件包的软件包
opkg命令选项:
-A 查询所有软件包
-d <dest_name> 使用dest_name作为软件包安装的根目录
-f <conf_file> 使用conf_file作为opkg的配置文件
–nodeps 不按照依赖来安装,只安装软件包自己
–autoremove 卸载软件包时自动卸载不再使用的软件包
–force-reinstall 强制重新安装软件包