Linux: 软件包管理工具 apk 命令(Alpine Linux)

本文链接: https://xiets.blog.csdn.net/article/details/117205211

1. Alpine Linux

Alpine Linux 是基于 musl libc 和 busybox 的面向安全的轻量级 Linux 发行版。Alpine 的体积非常小,Alpine 的 Docker 镜像大小仅 5 MB 左右。Alpine 功能比 buysbox 完善,还提供了软件包管理工具 apk (Alpine Package Keeper)。

相关网站:

  • Alpine Linux 官网: https://www.alpinelinux.org/
  • Alpine Wiki: https://wiki.alpinelinux.org/
  • Alpine Package Keeper (apk): https://docs.alpinelinux.org/user-handbook/0.1a/Working/apk.html
  • Alpine apk 软件包搜索: https://pkgs.alpinelinux.org/
  • busybox: https://busybox.net/

其他 Linux 软件包管理工具:

  • apt (Debian/Ubuntu)
  • yum/dnf (Fedora/CentOS/RedHat)
  • snap (All Linux)

后面示例以 Alpine 3.13.5 为例。

2. 更新/安装/卸载 软件包

  • 更新
apk update              # 根据远程镜像源更新本地仓库中的所有软件包索引(通常在更新/安装软件包前先更新索引)
apk upgrade             # 从仓库中安装所有可用的软件包升级(升级本地已安装的软件包及其依赖项)apk upgrade <package>   # 更新指定的软件包# update 只更新索引, upgrade 才真正更新
  • 安装
apk add <package>               # 安装软件包(并自动安装依赖项)
apk add <package>=<version>     # 安装指定版本软件包apk --no-cache add <package>    # 安装软件包, 不使用缓存apk fix <package>               # 在不修改 WORLD 的情况下修复, 重新安装或升级软件包

apk 命令格式: apk [...] COMMAND [...]
其中每个子命令的 [OPTIONS...] 参数信息可以使用 --help 查询,如: apk add --help

  • 卸载
apk del <package>       # 删除软件包, 如果其依赖项不再本需要, 则将其一起卸载# 删除软件包时默认会执行类似 apt autoremove 的清理操作

3. 查询/搜索/缓存 软件包

  • 列出软件包 (apk list)
apk list [<OPTIONS>...] PATTERN...  # 列出给定模式的软件包# apk list --help 命令参数 (List options):
#     -I, --installed       只显示已安装的软件包
#     -O, --orphaned        只显示孤立的软件包
#     -a, --available       只显示可用的软件包
#     -u, --upgradable      只显示可升级的软件包
#     -o, --origin          按来源列出软件包
#     -d, --depends         按依赖关系列出软件包
#     -P, --providers       按提供者列出软件包apk -I list                 # 列出已安装的所有软件包
apk -u list                 # 列出可升级的所有软件包
apk list <package>          # 列出指定软件包
  • 查询软件包的详细信息
apk info <package>          # 列出给定软件包或仓库的详细信息
apk info -R <package>       # 列出给定软件包依赖项
apk info --help             # 查询 apk info 命令的帮助/参数信息apk dot --installed         # 将已安装软件包的依赖项呈现为 graphviz 图形
apk dot <package>           # 将给定装软件包的依赖项呈现为 graphviz 图形
  • 搜索软件包
apk search <string>         # 搜索软件包
  • 缓存管理
apk cache clean         # 删除旧的软件包
apk cache download      # 下载缺少的软件包
apk cache sync          # 删除旧软件包并下载缺少的程序包(上面两个步骤合并为一个)

使用缓存需要先开启缓存: https://wiki.alpinelinux.org/wiki/Local_APK_cache

4. 下载/离线安装 apk 软件包

使用 apk fetch 命令下载软件包到本地 (.apk 文件):

apk fetch [<OPTIONS>...] PACKAGES...    # 从配置的软件包仓库中下载软件包到本地# apk fetch --help 命令参数 (Fetch options):
#     -L, --link            如果可能的话, 创建硬链接
#     -o, --output DIR      下载到指定文件夹(默认为当前文件夹)
#     -R, --recursive       下载软件包及其依赖项
#     -s, --stdout          将 .apk 文件转储到标准输出 
#     --simulate            模拟请求的操作,不做任何更改

下载软件包及其依赖项并离线安装示例:

$ apk fetch -R <package>            # 下载软件包及其依赖项
$
$ ls                                # 下载的软件包是 .apk 格式
xxxx.apk.   xxxx.apk    ...
$
$ apk add xxxx.apk xxxx.apk ...     # 离线安装 apk 软件包及其依赖项

5. apk --help

$ apk --helpapk-tools 2.12.5, compiled for x86_64.usage: apk [<OPTIONS>...] COMMAND [<ARGUMENTS>...]Package installation and removal:add        Add packages to WORLD and commit changesdel        Remove packages from WORLD and commit changesSystem maintenance:fix        Fix, reinstall or upgrade packages without modifying WORLDupdate     Update repository indexesupgrade    Install upgrades available from repositoriescache      Manage the local package cacheQuerying package information:info       Give detailed information about packages or repositorieslist       List packages matching a pattern or other criteriadot        Render dependencies as graphviz graphspolicy     Show repository policy for packagesRepository maintenance:index      Create repository index file from packagesfetch      Download packages from global repositories to a local directorymanifest   Show checksums of package contentsverify     Verify package integrity and signatureMiscellaneous:audit      Audit system for changesstats      Show statistics about repositories and installationsversion    Compare package versions or perform tests on version stringsThis apk has coffee making abilities.
For more information: man 8 apk


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部