Поиск по сайту:

Примеры команд Alpine Linux Apk

В этом руководстве объясняется, что такое менеджер пакетов Apk и как выполнять различные операции по управлению пакетами Alpine Linux с помощью менеджера пакетов командной строки Apk, с примерами.

Краткое введение в менеджер пакетов apk

Apk, расшифровывается как Alpine, Package Keeper, является менеджером пакетов по умолчанию для Alpine Linux. Он используется для установки, обновления, обновления, поиска, составления списка и удаления пакетов в работающей системе Alpine Linux. Apk является частью пакета apk-tools, который предустановлен во всех версиях Alpine Linux.

Apk извлекает пакеты, а также информацию о доступных пакетах в онлайн-репозиториях. Каждый репозиторий содержит специальный индексный файл с именем APKINDEX.tar.gz. Все пакеты программного обеспечения, хранящиеся в репозитории, представляют собой архивы tar.gz с цифровой подписью. Они имеют расширение .apk и часто называются "a-packs".

Начиная с Alpine Linux версии 3.3, по умолчанию включены два репозитория. Это — основной и сообщество.

Репозиторий [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

Файл конфигурации репозиториев Alpine 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

Управление пакетами с помощью apk в Alpine Linux довольно простое и понятное. 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

Как видно из приведенного выше вывода, в настоящее время в репозиториях Alpine доступно 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

Аналогичным образом вы можете добавить несколько пакетов, упомянув их через пробел, как показано ниже:

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

Если вы хотите удалить несколько пакетов, укажите их через пробел.

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

Как видите, эта команда выводит не только сведения о пакете 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

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'

Вы также можете использовать «нечеткое» сопоставление версий, чтобы привязать версию к основному/второстепенному выпуску. Например, следующая команда будет соответствовать любой версии vim, начинающейся с 8.2.

sudo apk add 'vim=~8.2'

Связанное чтение:

  • Как игнорировать обновление пакета в Arch Linux
  • Как предотвратить обновление пакета в Debian, Ubuntu

11. Загрузите пакеты в Alpine Linux

Иногда вы хотите загрузить определенный пакет, но не хотите его устанавливать. Например, давайте загрузим пакет vim с помощью команды:

apk fetch vim

Приведенная выше команда отобразит пакет vim из репозиториев Alpine и сохранит его в текущем каталоге.

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

Заключение

В этом подробном руководстве мы обсудили 14 примеров команд Alpine Linux APK для выполнения различных операций по управлению пакетами.

Надеюсь это поможет.

Ресурс:

  • Альпийская вики

Связанное чтение:

  • Как установить страницы руководства в Alpine Linux

Статьи по данной тематике