Примеры команд 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