Alpine Linux — это минималистичный Docker-образ на базе имеет размер всего 5 МБ, но многие обычные для Linux утилиты в нем, по умолчанию, не установлены. Рассмотрим как из командной строки установить пакет в Alpine-контейнере с помощью apk (менеджера пакетов Alpine).
Установка Пакетов в Alpine
# apk update — обновление всех пакетов # apk add — установка пакета
Также пакет в Alpine может быть установлен с использованием опции —no-cache:
# apk —no-cache add
Она позволяет устанавливать пакеты с обновленным индексом «на лету», т.е. без локального кэша.
Если возникают ошибки вида: ERROR: Unable to lock database: Permission denied или ERROR: Failed to open apk database: Permission denied , то просто подключитесь к Docker-контейнеру как root.
Чтобы установить пакет в Docker-образе на базе Alpine, добавьте следующую строку в Dockerfile:
RUN apk —no-cache add
Если надо найти определенный пакет, то используйте команду:
Источник: blog-programmista.ru
УСТАНОВКА ALPINE LINUX 2019.УСТАНОВКА xfce4 на ALPINE LINUX 2019
Alpine Linux
Alpine Linux — независимый, маленький, быстрый дистрибутив Linux. Используется в Docker контейнерах.

Оглавление
- Видео-обзор
- Система инициализации OpenRC
- Использует BusyBox
- Библиотека musl
- История
- Назначение, использование
- Система управления пакетами apk-tools
- Операции утилиты apk
Видео-обзор
Видео-обзор дистрибутива Alpine Linux.
Система инициализации OpenRC
В качестве системы инициализации используется OpenRC.
OpenRC отличается модульной структурой, загрузкой на основе зависимостей, поддержкой ограничения ресурсов, параллельной загрузкой сервисов и т.д.
Изначально OpenRC использовалась в Gentoo (c 2011 года) и была основана на SysVInit.
Использует BusyBox
Alpine Linux использует набор UNIX-утилит BusyBox. BusyBox это реализация классических утилит UNIX, выполненная в виде одного небольшого исполняемого файла.
BusyBox реализует все основные утилиты (GNU fileutils, shellutils и т.д.), которые обычно реализованы как отдельные файлы. Утилиты BusyBox, как правило, более компактные и могут иметь меньше опций, чем GNU аналоги. Не смотря на это, BusyBox предоставляет достаточно полную среду для любой небольшой или встраиваемой системы.
Вызов утилит в BusyBox выполняется путем исполнения файла busybox и указания требуемой команды и аргументов. Например, для вызова команды ls аргументом -l, необходимо выполнить:
busybox ls -l
Библиотека musl
В качестве реализации стандартной библиотеки языка C (libc) в Alpine Linux используется библиотека musl.
Самой популярной библиотекой языка C является GNU Libc (glibc). glibc обеспечивает реализацию системных вызовов и основные функции, например open, malloc и так далее. Библиотека musl представляет собой более легковесную альтернативу glibc.
musl была разработана с нуля Ричем Фелкером. Ставились цели разработать более чистую и эффективную реализацию, которая будет соответствовать стандартам.
Скомпилированная версия библиотеки представляет собой один динамический объектный файл. При использовании версии musl для статического связывания, можно создавать портативные программы в виде одного исполняемого бинарного файла.
Первый релиз musl появился 11 февраля 2011.
Помимо Alpine Linux библиотека musl также используется в дистрибутивах Gentoo, OpenWrt, Sabotage, Void Linux и других.
История
Изначально Alpine Linux являлся форком LEAF Project (Linux Embedded Appliance Framework Project).
Назначение, использование
- Из-за своего маленького размера Alpine Linux часто применяется в контейнерах.
- Может использоваться во встраиваемых системах. Например, в основе операционной системы для смартфонов postmarketOS лежит Alpine Linux.
- Может быть установлен в качестве «десктоп-системы».
Система управления пакетами apk-tools
Используется собственная система управления пакетами apk-tools.
Изначально apk-tools представляла собой набор shell-скриптов, но потом была полностью переписана на C.
Alpine Linux может быть установлен на диск, либо работать из оперативной памяти. Управление пакетами включает две фазы:
- Установка / Обновление / Удаление пакетов на работающей системе.
- Восстановление системы в ранее сконфигурированное состояние (например, после перезагрузки), включая все ранее установленные пакеты и локально измененные конфигурационные файлы. Данная фаза актуальна только для системы, работающей из RAM (diskless mode).
apk-tools включает две утилиты:
- apk — утилита для установки, обновления и удаления пакетов в работающей системе. (Не путать с apk форматом для Android)
- lbu — утилита для сохранения данных, необходимых для последующего восстановления системы в ранее сконфигурированное состояние. lbu происходит от названия «Alpine local backup»
Операции утилиты apk
Утилита apk поддерживает следующие операции:
| add | добавление и обновление пакетов. |
| del | удаление пакетов. |
| fix | выполнить восстановление или обновление, установленных пакетов. |
| update | обновить индекс — получить актуальную информацию о пакетах, находящихся в репозиториях. |
| info | вывести информацию об установленных или доступных пакетах. |
| search | поиск по названию или описанию пакетов. |
| upgrade | обновление пакетов. |
| cache | управление кешем. |
| version | сравнение версий установленных и доступных в репозитории пакетов. |
| index | создать индекс на основе списка пакетов. |
| fetch | скачать, но не устанавливать пакеты. |
| audit | показать изменения в файловой системе после установки пакета. |
| verify | проверить подпись. |
| dot | создать граф (graphviz) для описания структуры пакета. |
| policy | показать репозиторий, из которого пакет был установлен, а также репозитории, в которых также содержится этот пакет. |
| stats | отобразить статистику, включая количество установленных и доступных пакетов, количество директорий, файлов и т.д. |
| manifest | отобразить контрольные суммы для файлов, содержащихся в пакете. |
Репозитории и пакеты
Пакеты для Alipne Linux представляют собой tar.gz архивы и имеют расширение .apk. В архиве пакета содержатся программы, конфигурационные файлы и метаданные о зависимостях.
Репозиторий представляет собой обычную директорию, в которой находятся .apk файлы. Также в директории размещается специальный индексный файл APKINDEX.tar.gz
Утилита apk может устанавливать пакеты из различных репозиториев. Список репозиториев представлен в файле /etc/apk/repositories
Если система была загружена с USB-носителя или CD-ROM, то файл /etc/apk/repositories может иметь следующее содержимое:
/media/sda1/apks/
В дополнение к локальным репозиториям, утилита apk может загружать пакеты с внешних репозиториев по HTTP, HTTPS или FTP протоколу. Для загрузки пакетов используется busybox wget. Пример файла /etc/apk/repositories с адресами удаленных (внешних) репозиториев.
/media/sda1/apks http://dl-3.alpinelinux.org/alpine/v2.6/main https://dl-3.alpinelinux.org/alpine/v2.6/main ftp://dl-3.alpinelinux.org/alpine/v2.6/main
Установка Alpine Linux
Система устанавливается в консольном режиме. Для установки используется скрипт setup-alpine
Существует три режима установки, которые влияют на то, как будет работать система:
- Diskless Mode — вся система и все приложения загружаются в RAM.
- Data Disk Mode — система запускается из RAM, но swap и /var монтируются с диска.
- Sys Disk Mode — традиционная установка системы на диск. По умолчанию создается три раздела: /boot, swap и /.
Релизы дистрибутива Alpine Linux
| 2.1 | 01 ноября 2010 | 01 ноября 2012 | |
| 2.2 | 06 мая 2011 | ||
| 2.3 | 01 ноября 2011 | ||
| 2.4 | 02 мая 2012 | ||
| 2.5 | 07 ноября 2012 | ||
| 2.6 | 17 мая 2013 | ||
| 2.7 | 08 ноября 2013 | ||
| 3.0 | 04 июня 2014 | ||
| 3.1 | 10 декабря 2014 | ||
| 3.2 | 26 мая 2015 | ||
| 3.3 | 18 декабря 2015 | ||
| 3.4 | 31 мая 2016 | ||
| 3.5 | 22 декабря 2016 | ||
| 3.6 | 24 мая 2017 | ||
| 3.7 | 30 ноября 2017 | ||
| 3.8 | 26 июня 2018 | ||
| 3.9 | 29 января 2019 | ||
| 3.10 | 19 июня 2019 | ||
| 3.11 | 29 декабря 2019 | 01 ноября 2021 | |
| 3.12 | 29 мая 2020 | 01 мая 2022 | |
| 3.13 | 14 января 2021 | 01 ноября 2022 | пресс-релиз |
| 3.14 | 15.06.2021 | ||
| 3.15 | 24.11.2021 | ||
| 3.16 | 23.05.2022 | ||
| 3.17 | 22 ноября 2022 | пресс-релиз |
Источник: pingvinus.ru