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