Alpine Linux - дистрибутив Linux

Alpine Linux — независимый, маленький, быстрый дистрибутив Linux. Используется в Docker контейнерах.

Alpine Linux
Alpine Linux 3.13 с установленной средой рабочего стола Xfce

Видео-обзор

Видео-обзор дистрибутива 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.101 ноября 201001 ноября 2012
2.206 мая 2011
2.301 ноября 2011
2.402 мая 2012
2.507 ноября 2012
2.617 мая 2013
2.708 ноября 2013
3.004 июня 2014
3.110 декабря 2014
3.226 мая 2015
3.318 декабря 2015
3.431 мая 2016
3.522 декабря 2016
3.624 мая 2017
3.730 ноября 2017
3.826 июня 2018
3.929 января 2019
3.1019 июня 2019
3.1129 декабря 201901 ноября 2021
3.1229 мая 202001 мая 2022
3.1314 января 202101 ноября 2022пресс-релиз
3.1415.06.2021
3.1524.11.2021
3.1623.05.2022
3.1722 ноября 2022пресс-релиз

Сайт дистрибутива:

alpinelinux.org
Лайков: +11
войдите, чтобы ставить лайки
8
  • Опубликовано: 26.02.2021

Скриншоты дистрибутива

Смотрите также

Комментарии

Иван
26.02.2021
14:05
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Правильно я понимаю, что снап и флэтпак - это докеры?
IIL
Активный пользователь
Активный
26.02.2021
14:13
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийИванРодительский комментарий
+1
войдите, чтобы ставить лайки
Нет. Концептуально они может и схожи, но это абсолютно разные технологии с разными предназначениями.
W495
Активный пользователь
Активный
26.02.2021
15:06
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
А в чём смысл BusyBox? Это же не Unix-Way совсем.
tigr72
Активный пользователь
Активный
26.02.2021
16:34
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийW495Родительский комментарий
+1
войдите, чтобы ставить лайки
За-то какая экономия памяти.
Один файл размером 1Мбайт заменяет вот этот список команд - https://ru.wikipedia.org/wiki/BusyBox#%D0%9A%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B
padsel
26.02.2021
20:49
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
пытался сегодня diskless mode поставить, это когда диск указываешь none
затык случился на следующем вопросе куда кэш apt сохранять, и несколько вариантов, а я не знаю, что выбрать, потыкал и так, и эдак, причём там даже на флешку предлагалось сохранять, но не получилось, это первый вопрос
второй: могу, конечно, новый раздел создать, но почти уверен, что она мне мой grub uefi затрёт, у меня первой системой xubuntu стоит
W495
Активный пользователь
Активный
01.03.2021
10:02
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийpadselРодительский комментарий
0
войдите, чтобы ставить лайки
> кэш apt сохранять

Никуда, или например в ОЗУ.

> grub uefi

Кажется, восстановить не сложно.
Аноним
27.02.2021
08:40
Постоянная ссылка на комментарийПостоянная ссылка на комментарий
0
войдите, чтобы ставить лайки
Всё же поворачиваю дистрибутивы с космическим GNU. А alpine, , получается, нельзя к GNU/Linux отнести, раз там GNU нет. И к какому классу он тогда относится? Ещё знаю, что postmarketOS тоже на нём основан.
pingvin063
Активный пользователь
Активный
18.04.2021
21:40
Постоянная ссылка на комментарийПостоянная ссылка на комментарийРодительский комментарийАнонимРодительский комментарий
0
войдите, чтобы ставить лайки
Просто Linux, как и Android

Написать комментарий

Ваше имя:
Текст комментария:
  • Уважать других.
  • Не ругаться.
  • Без оскорблений.
  • Без грубости.
  • Не переходить на личности.
  • Писать на русском языке.
  • Без политики.
  • Без флуда.
Правила