- Alpine Linux
- Дистрибутив Alpine Linux
- Видео-обзор
- Система инициализации OpenRC
- Использует BusyBox
- Библиотека musl
- История
- Назначение, использование
- Система управления пакетами apk-tools
- Операции утилиты apk
- Репозитории и пакеты
- Установка Alpine Linux
- Small. Simple. Secure.
- Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.
- Downloads
- Standard
- Extended
- Netboot
- Raspberry Pi
- Generic ARM
- Mini root filesystem
- Virtual
- Установка Alpine Linux
- Установка Alpine Linux
- Шаг 1. Загрузка образа
- Шаг 2. Запись образа
- Шаг 3. Настройка BIOS
- Шаг 4. Начало установки
- Шаг 5. Раскладка клавиатуры
- Шаг 6. Имя компьютера
- Шаг 7. Настройка сети
- Шаг 8. Пароль пользователя
- Шаг 9. Настройка прокси
- Шаг 10. Выбор зеркала репозиториев
- Шаг 11. Настройка SSH
- Шаг 12. Выбор места установки
- Шаг 13. Завершение установки
- Шаг 14. Вход в систему
- Шаг 15. Установка редактора nano
- Шаг 16. Редактирование файла с репозиториями и обновление
Alpine Linux
Дистрибутив Alpine Linux
Alpine Linux — независимый, маленький, быстрый дистрибутив Linux. Используется в Docker контейнерах. 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, необходимо выполнить:
Библиотека 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 может иметь следующее содержимое:
В дополнение к локальным репозиториям, утилита apk может загружать пакеты с внешних репозиториев по HTTP, HTTPS или FTP протоколу. Для загрузки пакетов используется busybox wget. Пример файла /etc/apk/repositories с адресами удаленных (внешних) репозиториев.
Установка Alpine Linux
Система устанавливается в консольном режиме. Для установки используется скрипт setup-alpine
Существует три режима установки, которые влияют на то, как будет работать система:
- Diskless Mode — вся система и все приложения загружаются в RAM.
- Data Disk Mode — система запускается из RAM, но swap и /var монтируются с диска.
- Sys Disk Mode — традиционная установка системы на диск. По умолчанию создается три раздела: /boot, swap и /.
Small. Simple. Secure.
Alpine Linux is a security-oriented, lightweight Linux distribution based on musl libc and busybox.
Downloads
Current Alpine Version 3.16.2 (Released Aug 09, 2022)
Standard
Alpine as it was intended. Just enough to get you started. Network connection is required.
aarch64 | sha256 | GPG |
armv7 | sha256 | GPG |
ppc64le | sha256 | GPG |
s390x | sha256 | GPG |
x86 | sha256 | GPG |
x86_64 | sha256 | GPG |
Extended
Most common used packages included. Suitable for routers and servers. Runs from RAM. Includes AMD and Intel microcode updates.
Netboot
Kernel, initramfs and modloop for netboot.
aarch64 | sha256 | GPG |
armhf | sha256 | GPG |
armv7 | sha256 | GPG |
ppc64le | sha256 | GPG |
s390x | sha256 | GPG |
x86 | sha256 | GPG |
x86_64 | sha256 | GPG |
Raspberry Pi
Includes Raspberry Pi kernel. Designed for RPI 1, 2, 3 and 4. And much more.
aarch64 | sha256 | GPG |
armhf | sha256 | GPG |
armv7 | sha256 | GPG |
Generic ARM
Has default ARM kernel. Includes the uboot bootloader. Supports armv7 and aarch64.
Mini root filesystem
Minimal root filesystem. For use in containers and minimal chroots.
aarch64 | sha256 | GPG |
armhf | sha256 | GPG |
armv7 | sha256 | GPG |
ppc64le | sha256 | GPG |
s390x | sha256 | GPG |
x86 | sha256 | GPG |
x86_64 | sha256 | GPG |
Virtual
Similar to standard. Slimmed down kernel. Optimized for virtual systems.
aarch64 | sha256 | GPG |
armv7 | sha256 | GPG |
x86 | sha256 | GPG |
x86_64 | sha256 | GPG |
Built-in support for Xen Hypervisor. Includes packages targetted at Xen usage. Use for Xen Dom0.
Установка Alpine Linux
Итак, что же мы знаем об Alpine Linux и зачем его устанавливать? Во-первых, он базируется на musl и BusyBox, во-вторых, это единственный независимый дистрибутив Linux предоставляющий безопасность в общих целях. Его разработка была предопределена концепцией обеспечения безопасности, а для защиты от вредоносного кода было решено использовать PaX и SSP.
Стоит отметить его необычно неприхотливые требования к ресурсам системы. Пакеты используются apk, но некоторые придется установить самостоятельно. Руководство, конечно же, присутствует на сайте дистрибутива, которому необходимо не более 8 МБ, а минимальная установка на диск требует не более 130 МБ свободного места. Для управления пакетами в Alpine используется apk. И некоторых пакетов, которые Вам будут нужны, по умолчанию не будет в Alpine.
Установка Alpine Linux
Шаг 1. Загрузка образа
Переходим по этой ссылке https://www.alpinelinux.org/downloads/ и качаем образ:
Нам нужен STANDARD.
Шаг 2. Запись образа
Все как обычно, — если у вас Linux, то качаем Unebootin; если у вас Windows, то качаем Rufus. Ссылки предоставил.
Шаг 3. Настройка BIOS
Перезагружаем компьютер и заходим в BIOS. Нам надо зайти во вкладку Boot и указать в пункте 1 st Boot Device вашу флешку. Затем сохраните настройки и перезагрузите компьютер.
Шаг 4. Начало установки
Заранее говорю, что все делается через командную строку.
Пишем для входа в командную оболочку:
Далее выполняем команду:
Таким образом мы запускаем процесс установки
Шаг 5. Раскладка клавиатуры
Выбираем раскладку из списка. В моем случае это:
Жмем далее и снова пишем:
Шаг 6. Имя компьютера
При указании имени компьютера обратите внимание на то, что следует использовать числа и символы нижнего регистра. Например, имя Noma я не смог указать, зато имя noma вполне проходит по параметрам.
Шаг 7. Настройка сети
Сразу же после указания имени хоста нам предложат настройки, связанные с интернетом. Если у вас проводной интернет по DHCP, их просто пропускаем нажатием Enter. Все это можно настроить уже потом непосредственно в установленной системе.
Шаг 8. Пароль пользователя
Указываем пароль для суперпользователя. Если он 6-значный, например, то вы получите предупреждение о том, что пароль слишком слабый, но это не мешает установке.
Шаг 9. Настройка прокси
Далее вы можете установить прокси или просто пропустить. В моем случае я просто нажал Enter и пропустил этот пункт, так как все это тоже можно будет потом настроить, при необходимости.
Шаг 10. Выбор зеркала репозиториев
Вам дадут список зеркал, если вы этого не сделаете, то система будет проверять каждое и самостоятельно выберет наиболее подходящее.
Примечание для жителей Украины. Если вы не укажите зеркало, то рискуете попасть на Yandex, а с ним установка не получится, так как компания под санкциями. В вашем случае просто выберете любое другое.
Шаг 11. Настройка SSH
Если вы хотите, то можете установить и ssh сервер. И снова, на данном этапе это не является необходимым, и вы всегда сможете его поднять позже.
Шаг 12. Выбор места установки
Система предложит выбрать любой из доступных дисков для установки ОС. Я указываю следующее:
Далее вам надо выбрать для чего будет использоваться этот диск. Так как это системный диск, то я выбираю:
Получаем предупреждение о том, что все данные с выбранного диска будут удалены. Впрочем, ничего удивительного. Пишем:
Шаг 13. Завершение установки
Когда установка Alpine Linux завершится, система попросит о перезагрузке. Для этого извлекаем носитель на котором система и перезагружаемся командой:
Шаг 14. Вход в систему
Далее пишем пароль, который ранее задавали.
Шаг 15. Установка редактора nano
Так как у нас нет редактора, то мы установим. Это будет редактор Nano. Сделаем это с помощью команды:
Шаг 16. Редактирование файла с репозиториями и обновление
Теперь нам надо отредактировать файл репозиториев. Это позволит нам обновить систему и продолжить установку. Пишем:
Чтобы получить доступ к репозиторию сообщества надо раскомментиовать третью строку:
Для этого удалите # перед ней. После жмем ctrl+o -> Enter -> ctrl+x. После всего пишем команду: