当前位置: 首页 > 工具软件 > opkg-upgrade > 使用案例 >

Openwrt实践过程--opkg包管理

王建华
2023-12-01

1.介绍

在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。

2.语法

usage: opkg [options...] sub-command [arguments...]

3.常用参数

包操作

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*'

温馨提示:
以上文章描述如有不清晰之处,欢迎在评论区评论,如有时间,会第一时间回复,谢谢!

 类似资料: