包管理器
1. apk命令列表
Alpine系统包管理器为APK(Alpine Linux package management)。Alpine使用apk进行软件包管理,通过apk --help命令查看完整的包管理命令。
表2 apk工具支持操作
命令类别 | 子命令 | 命令说明 |
---|---|---|
包管理 | add | 将软件包添加到“world”并进行安装(或升级),同时确保满足所有依赖性 |
包管理 | del | 从“world”中删除并卸载软件包 |
系统维护 | fix | 修复或升级已安装的软件包 |
系统维护 | update | 更新可用软件包的索引 |
系统维护 | upgrade | 升级当前安装的软件包 |
系统维护 | cache | 本地缓存的软件包存储库的维护操作 |
信息查询 | info | 打印有关已安装或可用软件包的信息 |
信息查询 | list | 按PATTERN和其他条件列出包裹 |
信息查询 | search | 搜索带有通配符模式的软件包或描述 |
信息查询 | dot | 为给定的包创建graphviz图形描述 |
信息查询 | policy | 显示更新给定软件包的存储库,以及也提供该软件包的存储库 |
仓库管理 | index | 从软件包列表创建存储库索引 |
仓库管理 | fetch | 下载(但不安装)软件包 |
仓库管理 | verify | 验证包的完整性和签名信息 |
仓库管理 | manifest | 显示package各组成部分的checksum |
2. apk常用命令说明
2.1. update
表3
命令类别 | 子命令 | 命令说明 |
---|---|---|
系统维护 | update | 更新可用软件包的索引 |
update命令用于更新本地软件包索引,这样其它许多操作才能顺利执行,否则会提示警告信息。
alpine:/# apk update
fetch http://alpine.loongnix.cn/v3.11/main/loongarch64/APKINDEX.tar.gz
fetch http://alpine.loongnix.cn/v3.11/community/loongarch64/APKINDEX.tar.gz
fetch http://alpine.loongnix.cn/v3.11/testing/loongarch64/APKINDEX.tar.gz
fetch http://alpine.loongnix.cn/v3.11/non-free/loongarch64/APKINDEX.tar.gz
fetch http://alpine.loongnix.cn/v3.11/unmaintained/loongarch64/APKINDEX.tar.gz
OK: 10444 distinct packages available
索引文件一旦下载至本地,执行其他命令则不会出现WARNING信息。
2.2. search
表4
命令类别 | 子命令 | 命令说明 |
---|---|---|
系统维护 | search | 搜索带有通配符模式的软件包或描述 |
常见用法为apk search,用于查询可用的apk的包的信息。 以gcc为例:
alpine:/# apk search gcc
gcc-zsh-completion-5.7.1-r0
gcc-objc-8.3.0-r24
gcc-8.3.0-r24
gcc-doc-8.3.0-r24
libgcc-8.3.0-r24
2.3. add
表5
命令类别 | 子命令 | 命令说明 |
---|---|---|
包管理 | add | 将软件包添加到“world”并进行安装(或升级),同时确保满足所有依赖性 |
以安装iperf为例安装最新匹配版本的apk包的命令:
alpine:/# apk add iperf
(1/2) Installing iperf (2.0.13-r1)
(2/2) Installing iperf-openrc (2.0.13-r1)
Executing busybox-1.31.1-r10.trigger
OK: 1388 MiB in 207 packages
其他常见用法:
- 下载至本地apk安装文件,然后使用安装文件进行安装 apk add 二进制文件.apk
- 使用本地cache而不直接联网进行安装 apk add --no-network 包名
- 不使用本地cache进行安装 apk add --no-cache 包名
- 安装某包的指定版本 apk add 包名=指定版本号
以安装acf-lib-lua5.1-0.11.0-r0为例:
alpine:/# apk add acf-lib-lua5.1=0.11.0-r0
(1/1) Installing acf-lib-lua5.1 (0.11.0-r0)
OK: 1388 MiB in 205 packages
2.4. del
表6
命令类别 | 子命令 | 命令说明 |
---|---|---|
包管理 | del | 从“world”中删除并卸载软件包 |
以卸载iperf为例:
alpine:/# apk del iperf
(1/2) Purging iperf-openrc (2.0.13-r1)
(2/2) Purging iperf (2.0.13-r1)
Executing busybox-1.31.1-r10.trigger
OK: 1388 MiB in 205 packages
可以看到连同安装的其他依赖一同卸载。
2.5. info 和 list
表7
命令类别 | 子命令 | 命令说明 |
---|---|---|
信息查询 | info | 打印有关已安装或可用软件包的信息 |
信息查询 | list | 按PATTERN和其他条件列出软件包 |
可以通过info和list获得包的相关信息,以iperf为例:
alpine:/# apk list iperf
iperf-2.0.13-r1 loongarch64 {iperf} (BSD)
alpine:/# apk info iperf
iperf-2.0.13-r1 description:
A tool to measure IP bandwidth using UDP or TCP
iperf-2.0.13-r1 webpage:
http://iperf2.sourceforge.net/
iperf-2.0.13-r1 installed size:
135168
其他常见用法:
- 查询指定的二进制文件名所归属的包的信息 apk info --who-owns 二进制文件名称
alpine:/# which grep
/bin/grep
alpine:/# apk info --who-owns /bin/grep
/bin/grep symlink target is owned by busybox-1.31.1-r10
- 查询已经安装的所有包的信息 apk info 或者 apk info -v
2.6. policy
表8
命令类别 | 子命令 | 命令说明 |
---|---|---|
信息查询 | policy | 显示更新给定软件包的存储库,以及也提供该软件包的存储库 |
使用policy可以查询包信息:
alpine:/# apk policy iperf
iperf policy:
2.0.13-r1:
http://alpine.loongnix.cn/v3.11/main