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

opkg软件包管理

陆宇航
2023-12-01

opkg 工具 (一个 ipkg 变种) 是一个用来从本地软件仓库或互联网软件仓库上下载并安装 OpenWrt 软件包的轻量型软件包管理器。
GNU/Linux 用户可能会对 apt-get,aptitude,pacman,yum 等比较熟悉,也会看出其相似之处。它与 NSLU2 上同样用于嵌入式设备的 Optware 也有相似之处。OPKG 没有仅仅将软件安装到一个单独的路径(如:/opt),而是根文件系统上的一个完整的包管理器。它也包含了增加内核模块与驱动的可能性。OPKG 有时被称为 Entware ,但这主要是针对为嵌入式设备准备的 Entware 仓库。

调用

opkg必须有一个子命令参数:
usage: opkg [options…] sub-command [arguments…]

其中的子命令可以是以下:

软件包管理
sub-commanddescription
update更新可用软件包列表
upgrade <pkgs>升级软件包
要升级一组软件包,运行 opkg upgrade 软件包名1 软件包名2 即可。
命令 opkg list-upgradable 可以获取一个可升级软件包的列表。
install <pkgs | FQDN>安装一个或多个软件包
eg:
opkg install hiawatha
opkg install http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages/hiawatha_7.7-2_ar71xx.ipk
opkg install /tmp/hiawatha_7.7-2_ar71xx.ipk
configure <pkgs>配置一个或者多个未安装的包
remove <pkgs | globp>移除一个或多个软件包
flag <flag> <pkgs>标记一个或多个软件包
每次调用仅允许一个标记。
可用标记有:
hold • noprune • user • ok • installed • unpacked
信息命令
sub-commanddescription
list [pkg | globp]列出可用软件包
Package name - Version - Description
list-installed列出已安装软件包
list-upgradable列出可升级的已安装软件包
list-changed-conffiles列出用户修改过的配置文件
files <pkg>列出属于软件包 的文件
仅适用于已安装的软件包
search <file | globp>列出包含 <file>
info [pkg | globp]显示软件包 <pkg> 的所有信息
status [pkg | globp]显示软件包 <pkg> 的状态
download <pkg>下载软件包 <pkg> 到当前目录

配置

调整仓库

opkg唯一的配置文件是 /etc/opkg.conf ,它看起来是这样:

src/gz snapshots http://downloads.openwrt.org/snapshots/trunk/ar71xx/packages
dest root /
dest ram /tmp
lists_dir ext /var/opkg-lists
option overlay_root /overlay
本地仓库

可以配置opkg 从本地获取软件包:

src/gz local file:///path/to/packagesDirectory

Barrier_breaker 使用多个仓库,每个参考需要个唯一的标识符。逻辑上使用仓库原始的名称。如:

...
src/gz base file:///path/to/packages/directory/packages/base
src/gz luci file:///path/to/packages/directory/packages/luci
src/gz packages file:///path/to/packages/directory/packages/packages
src/gz oldpackages file:///path/to/packages/directory/packages/oldpackages
... etc ...
挂载点

opkg 有个不为那些 apt 系工具使用者熟悉的有用特性,它可以为任一软件包指定安装目的位置。
默认的 opkg.conf 包含三个目的位置:

dest root /
dest ram /tmp
dest mnt /mnt

目的位置行的格式很简单,关键字 dest 跟着目的位置名称(可以随便起),然后就是文件系统位置。任一如上配置好的目的位置都可以在 opkg 命令行中使用,如:

opkg install somepackage -d destination_name

dest 参数必须为 /etc/opkg.conf 中定义的目的位置名。如:-d ram 会将软件包安装到 /tmp/ 下。

关于OPKG如何本地升级软件,可参考下一篇博文:opkg 更新软件

参考链接:OPKG 软件包管理
 类似资料: