高山Linux Apk命令示例

本指南说明什么是 Apk 软件包管理器,以及如何使用带有示例的Apk命令行软件包管理器进行各种Alpine Linux软件包管理操作。

apk软件包管理器简介

Apk,代表 一种高山 P装箱费 ķeeper是Alpine Linux的默认软件包管理器。 它用于在运行的Alpine Linux系统上安装,更新,升级,搜索,列出和删除软件包。 Apk是 apk-tools 所有Alpine Linux版本中都预先安装了该软件包。

Apk检索软件包以及有关在线存储库中可用软件包的信息。 每个存储库都包含一个特殊的索引文件,名为 APKINDEX.tar.gz。 存储在存储库中的所有软件包均经过数字签名 tar.gz 档案。 他们有扩展名 .apk,通常称为 “一包”

从Alpine Linux 3.3版开始,默认情况下启用了两个存储库。 他们是 – maincommunity

[main] 存储库包含经过Alpine Linux核心团队全面测试并得到官方支持的软件包。 的 [community] 存储库包含社区支持的软件包,这些软件包从 [testing] 要么 [edge] 资料库。 的 [testing] 存储库通常具有新的,损坏的和/或过时的软件包。 此存储库不提供任何支持,也不包含在发行快照中。

所有存储库都在 /etc/apk/repositories 文件。 让我们来看一下该文件的内容 cat 命令:

$ cat /etc/apk/repositories

样本输出:

https://sjc.edge.kernel.org/alpine/edge/main
https://sjc.edge.kernel.org/alpine/edge/community

高山Linux存储库配置文件

上面文件中的每一行都表示一个存储库。 如您在上面的输出中看到的,我已启用 [edge] 存储库,因此它是滚动发行版本。

如果您使用的是稳定版本,则应该已经看到了版本号,例如 v3.12,如下所示:

https://sjc.edge.kernel.org/alpine/v3.12/main
https://sjc.edge.kernel.org/alpine/v3.12/community

Apk命令示例,用于在Alpine Linux中安装和管理软件包

在Alpine Linux中使用apk进行软件包管理非常简单明了。 Apk没有太多选项,语法更容易记住。

apk软件包管理器的典型用法是:

apk [<OPTIONS>...] COMMAND [<ARGUMENTS>...]

让我向您展示一些日常操作的重要命令。

1.显示apk命令帮助

如果您不熟悉apk,可以通过运行以下命令随时查看apk命令帮助部分:

$ apk --help

apk有许多子命令来执行特定操作。 要显示子命令的帮助部分,请运行:

$ apk add --help

2.在Alpine Linux中更新软件包列表

要获取Alpine Linux存储库中可用软件包的列表,只需运行:

$ sudo apk update

样本输出:

fetch https://sjc.edge.kernel.org/alpine/edge/main/x86_64/APKINDEX.tar.gz
fetch https://sjc.edge.kernel.org/alpine/edge/community/x86_64/APKINDEX.tar.gz
v20201218-310-g44bdae590f [https://sjc.edge.kernel.org/alpine/edge/main]
v20201218-333-ga9f7a8a644 [https://sjc.edge.kernel.org/alpine/edge/community]
OK: 13780 distinct packages available

更新Alpine Linux中的软件包列表

如您在上面的输出中看到的,当前有 13780 高山存储库中提供的软件包。 请注意,这些不是本地安装的软件包总数,而是可用软件包的总数。

3.在Alpine Linux中安装软件包

例如,添加或安装软件包 vim在Alpine Linux中,只需运行:

$ sudo apk add vim

上面的命令将安装vim及其依赖项。

(1/3) Installing xxd (8.2.2137-r0)
(2/3) Installing lua5.3-libs (5.3.6-r0)
(3/3) Installing vim (8.2.2137-r0)
Executing busybox-1.32.0-r8.trigger
OK: 163 MiB in 87 packages

在Alpine Linux中安装软件包在Alpine Linux中安装软件包

同样,您可以添加多个软件包,方法是使用以下空格来提及它们:

$ sudo apk PackageName1 PackageName2

3.1。 安装本地软件包

如果您已经下载了软件包,则可以按如下所示安装它们。

$ sudo apk add --allow-untrusted vim-8.2.2137-r0.apk

您还可以安装多个软件包:

$ sudo apk add --allow-untrusted PackageName1.apk PackageName2.apk PackageName3.apk

4.在Alpine Linux中删除软件包

要从您的Alpine Linux系统上卸载或删除已安装的软件包,请运行:

$ sudo apk del vim

该命令将删除vim及其依赖项。

(1/3) Purging vim (8.2.2137-r0)
(2/3) Purging xxd (8.2.2137-r0)
(3/3) Purging lua5.3-libs (5.3.6-r0)
Executing busybox-1.32.0-r8.trigger
OK: 144 MiB in 84 packages

在Alpine Linux中删除软件包在Alpine Linux中删除软件包

如果要删除多个软件包,请以空格分隔。

5.在Alpine Linux中搜索软件包

Alpine Linux存储库包含13,000多个软件包。 您可以使用以下命令列出所有可用的软件包及其说明:

$ apk search -v

样本输出:

kleopatra-20.08.3-r0 - Certificate Manager and Unified Crypto GUI
py3-libevdev-0.9-r0 - Python3 wrapper around the evdev library
telepathy-farstream-dev-0.6.2_git20190919-r0 - Telepathy GLib-based client library that uses Farstream to handle Call channels (development files)
vulkan-loader-1.2.137-r0 - Vulkan Installable Client Driver (ICD) Loader
mtd-utils-ubi-2.1.2-r0 - MTD utils (UBI and UBIFS commands)
hwids-udev-20201207-r0 - Hardware identification databases (udev integration)
py3-rsa-4.6-r0 - Pure-Python3 RSA implementation
[...]

要仅显示软件包总数,请将输出通过管道传递到 wc 如下命令:

$ apk search -v | wc -l

您还可以获得与模式匹配的所有软件包的列表。 例如,以下命令将显示与搜索词“ vim”匹配的所有软件包。

$ apk search -v 'vim*'

如果您只想显示在其包装中包含特定术语的包装 描述, 跑:

$ apk search -v --description 'disk'

或者,短期使用 -d 开关:

$ apk search -v -d 'disk'

6.在Alpine Linux中显示软件包详细信息

要显示特定包装的详细信息,我们可以使用 info 如下命令:

$ apk info vim

您将看到给定软件包的简短描述,以及托管它的网站。

样本输出:

vim-8.2.2137-r0 description:
Improved vi-style text editor

vim-8.2.2137-r0 webpage:
https://www.vim.org/

vim-8.2.2137-r0 installed size:
18 MiB

gvim-8.2.2137-r0 description:
advanced text editor, with GUI

gvim-8.2.2137-r0 webpage:
https://www.vim.org/

gvim-8.2.2137-r0 installed size:
29 MiB

在Alpine Linux中显示软件包详细信息在Alpine Linux中显示软件包详细信息

如您所见,该命令不仅列出了vim软件包的详细信息,而且还列出了其他软件包的详细信息,这些软件包的名称中包含模式“ vim”。

如果需要有关给定软件包及其依赖项的详细信息,请使用 -a 旗。

$ apk info -a vim

上面的命令将显示以下详细信息:

  • 包装说明。
  • 套餐的网站。
  • 安装大小(即安装后包装所需的大小)。
  • 软件包的内容(即,软件包安装的文件列表)。
  • 软件包依赖关系,即使用此软件包需要哪些软件包。
  • 哪些软件包需要安装此软件包。
  • 和更多。

7.列出Alpine Linux中已安装的软件包

要查看您的Alpine Linux系统中所有已安装软件包的列表,请运行:

$ apk info

样本输出:

lm_sensors
man
virtualbox-guest-modules-virt
musl
libcrypto1.1
libssl1.1
apk-tools
musl-utils
busybox
alpine-baselayout
[...]

您还可以列出已安装的软件包及其版本号和说明:

$ apk info -vv

样本输出:

lm_sensors-3.4.0-r6 - Collection of user space tools for general SMBus access and hardware monitoring.
man-1.14.3-r0 - dummy package for upgrade compatibility.  this can safely be removed
virtualbox-guest-modules-virt-4.14.167-r0 - VirtualBox Additions kernel modules for virt
musl-1.2.2_pre6-r0 - the musl c library (libc) implementation
libcrypto1.1-1.1.1i-r0 - Crypto library from openssl
libssl1.1-1.1.1i-r0 - SSL shared libraries
apk-tools-2.12.0-r3 - Alpine Package Keeper - package manager for alpine
musl-utils-1.2.2_pre6-r0 - the musl c library (libc) implementation
busybox-1.32.0-r8 - Size optimized toolbox of many common UNIX utilities
alpine-baselayout-3.2.0-r8 - Alpine base dir structure and init scripts
[...]

仅列出已安装软件包的总数:

$ apk info | wc -l
87

8.升级Alpine Linux中的软件包

要升级特定软件包,请运行:

$ sudo apk update
$ sudo apk add -u vim

要么,

$ sudo apk add --upgrade vim

要升级所有已安装的软件包,请运行:

$ sudo apk update
$ sudo apk upgrade

您还可以将上述命令组合成如下所示的命令:

$ sudo apk -U upgrade

升级Alpine Linux中的软件包升级Alpine Linux中的软件包

9.升级Alpine Linux

将正在运行的Alpine Linux升级到下一个可用版本很容易! Alpine Linux有两个版本:

  • 稳定
  • 滚动释放(边缘)

您可以从当前稳定版本升级到较新版本,也可以将稳定版本转换为滚动发行版本。

以下指南提供了更详细的说明:

  • 如何将Alpine Linux升级到最新版本

10.保留升级包

有时,您希望在升级Alpine Linux系统时出于某种原因阻止或保留软件包的自动升级。 可能会有很多原因阻止包裹。 例如,应用程序需要特定版本才能正常工作。 否则新软件包可能会破坏您的系统。 因此,您想在升级系统时忽略软件包的升级。

要保留特定软件包以防升级,请使用以下任一命令:

$ sudo apk add vim=8.2.0-r0

要么,

$ sudo apk add 'vim<8.2.1'

然后,使用以下命令进行系统升级:

 $ sudo apk upgrade

该命令将升级所有软件包,但将vim软件包保持在8.2.0或更低版本。

您可以稍后将vim软件包升级到当前可用的版本,如下所示:

$ sudo apk add 'vim>8.2.1'

您还可以使用“模糊”版本匹配将版本固定到主要/次要版本。 例如,以下命令将匹配任何以8.2开头的vim版本。

$ sudo apk add 'vim=~8.2'

相关阅读:

  • 如何忽略软件包在Arch Linux中的升级

11.在Alpine Linux中下载软件包

有时,您想下载特定的软件包,但不想安装它。 例如,让我们使用命令下载vim软件包:

$ apk fetch vim

上面的命令将显示Alpine存储库中的vim软件包并将其保存在当前目录中。

$ ls
vim-8.2.2137-r0.apk

如果要将软件包保存在其他路径中,请使用 -o 开关。

$ apk fetch vim -o ~/Downloads

请注意,此命令不会下载所有必需的依赖项,而只会下载实际的软件包。

要下载给定的软件包以及所有必需的依赖项,请使用 -R--recursive)标志:

$ apk fetch -R vim

样本输出:

Downloading xxd-8.2.2137-r0
Downloading ncurses-libs-6.2_p20201219-r0
Downloading musl-1.2.2_pre6-r0
Downloading lua5.3-libs-5.3.6-r0
Downloading vim-8.2.2137-r0
Downloading ncurses-terminfo-base-6.2_p20201219-r0

您可以安装本地下载的软件包,如下所示 3.1。 安装本地软件包 部分。

12.显示软件包的存储库详细信息

您可能想要查找软件包来自哪个存储库。 Apk也有一个子命令。

显示存储库的软件包(例如 vim)已从安装,并将通过使用进行更新 apk policy 命令:

$ apk policy vim

样本输出:

vim policy:
  8.2.2137-r0:
    lib/apk/db/installed
    etc/apk/cache
    https://sjc.edge.kernel.org/alpine/edge/main

如您所见,vim软件包已从 [main] 资料库。

13.显示软件包和存储库的统计信息

我们可以使用以下命令打印有关已安装软件包和软件包存储库的统计信息:

$ apk stats

样本输出:

installed:
  packages: 87
  dirs: 485
  files: 9617
  bytes: 171270144
  triggers: 5
available:
  names: 30975
  packages: 13773
atoms:
  num: 9761

14.清理程序包缓存

默认情况下,所有安装的软件包都缓存在 /etc/apk/cache/ 目录。 将较新的软件包添加到缓存后,默认情况下将保留较旧版本的软件包。

如果您不想使用较旧版本的软件包,则可以使用以下命令清除软件包缓存:

$ sudo apk cache clean

如果要查看删除了哪些版本,请使用-v(详细)开关:

$ sudo apk -v cache clean

如果您不小心从缓存中删除了软件包,则可以使用以下命令下载它们:

$ sudo apk cache download

您还可以通过单个命令删除缓存并下载缺少的软件包:

$ sudo apk cache -v sync

希望这可以帮助。

资源:

相关阅读:

  • 如何在Alpine Linux中安装手册页

Alpine LinuxAlpine软件包KeeperapkLinuxLinux基础Linux命令软件包管理软件包管理器

Sidebar