在OpenWrt下使用的软件包管理技术叫做OPKG,是Open Package Management的缩写,是一款基于ipkg的轻量级包管理器,由C语言编写,类似于apt / dpkg,常用于路由、交换机等嵌入式设备中,用来管理软件包的安装升级与下载,目前已成为开源界嵌入式系统软件包管理的标准。
通过OPKG管理的软件包,可以轻松解决软件包依赖的问题。例如,如果我们要安装软件包A,但是软件包A依赖于软件包B 和C,即如果要安装软件包A,必须先安装软件包B和C,那么B和C如果又依赖其他软件包怎么办。解决这个问题的最好办法就是构建软件包的依赖关系,解决软件包依赖。在Centos或Ubuntu上,通过yum或者apt命令,实现软件包的依赖安装。那么在OpenWrt系统中,你可以通过OPKG包管理器的opkg命令完成软件包的依赖安装。OPKG管理的软件包后缀为.ipk。
usage: opkg [options...] sub-command [arguments...]
update 更新可用包的列表
upgrade <pkgs> 升级包
install <pkgs> 安装包(s)
configure <pkgs> 配置打开包(s)
remove <pkgs|regexp> 删除包(s)
flag <flag> <pkgs> 标记包(s)
<flag>=hold|noprune|user|ok|installed|unpacked
list 列出可用的包
list-installed 安装包列表
list-upgradable 列出已安装和可升级的软件包
list-changed-conffiles 列出用户修改的配置文件
files <pkg> 列表文件属于 <pkg>
search <file|regexp> 包提供列表 <file>
info [pkg|regexp] 显示所有信息 <pkg>
status [pkg|regexp] 显示所有状态 <pkg>
download <pkg> 下载<pkg>到当前目录
compare-versions <v1> <op> <v2>
比较版本使用 <= < > >= = << >>
print-architecture 列出可安装的包架构
whatdepends [-A] [pkgname|pat]+
whatdependsrec [-A] [pkgname|pat]+
whatprovides [-A] [pkgname|pat]+
whatconflicts [-A] [pkgname|pat]+
whatreplaces [-A] [pkgname|pat]+
-A 查询所有的包,而不只是那些安装
-V[<level>] 将冗余级别设置为 <level>.
--verbosity[=<level>] Verbosity levels:
0 errors only
1 normal messages (default)
2 informative messages
3 debug
4 debug level 2
-f <conf_file> 使用<conf_file>作为opkg配置文件
--conf <conf_file>
--cache <directory> 使用包缓存
-d <dest_name> 使用<dest_name>作为根目录
--dest <dest_name> 包装安装、拆卸、升级。<dest_name> 是否应该定义dest名称配置文件,也可以是目录名。
-o <dir> 使用 <dir> 作为根目录
--offline-root <dir> 包的离线安装
--add-arch <arch>:<prio> 注册具有给定优先级的体系结构
--add-dest <name>:<path> 用给定的路径注册目的地
--force-depends 安装/删除失败的依赖项
--force-maintainer 覆盖预先存在的配置文件
--force-reinstall 重新安装包(s)
--force-overwrite 覆盖来自其他包的文件(s)
--force-downgrade 允许opkg降级包
--force-space 禁用空闲空间检查
--force-postinstall 即使在脱机模式下也要运行postinstall脚本
--noaction 没有动作-只有测试
--download-only 没有动作-只下载
--nodeps 不要遵循依赖关系
--force-removal-of-dependent-packages
删除包和所有依赖项
--autoremove 删除已安装的包,自动满足依赖项
-t 指定tmp-dir
--tmp-dir 指定tmp-dir
regexp可以类似于'pkgname*' ' '*file*'或类似的东西
例如opkg info 'libstd*'或opkg search '*libop*'或opkg remove 'libncur*'
温馨提示:
以上文章描述如有不清晰之处,欢迎在评论区评论,如有时间,会第一时间回复,谢谢!