- Лицензия
- GNU GPLv3
- Сайт проекта
- alt-atomic.org
- Сообщить о проблеме
- altlinux.space
APM
APM (Atomic Package Manager) является менеджером системы в ALT Atomic. Он объединяет управление пакетами RPM, репозиториями, контейнерами Distrobox и атомарным образом системы. В обычных системах семейства Альт APM выступает как пакетный менеджер.
APM можно использовать как консольную утилиту с интерактивными диалогами, а также через D-Bus и HTTP API. Набор доступных команд зависит от системы. Поддержка атомарных образов определяется автоматически, а модуль Distrobox доступен при установленном Distrobox.
Установка
В ALT Atomic менеджер системы APM предустановлен и готов к работе, поэтому отдельная установка не требуется.
В обычных операционных системах семейства Альт установите пакет из репозитория Сизиф.
su -
apt-get update
apt-get install apmepm -i apmИспользование в обычных системах
В обычных системах семейства Альт APM можно использовать для управления системными пакетами и репозиториями. Модуль Distrobox доступен, если Distrobox установлен в системе.
Операции apply, status, update, history и switch доступны только в атомарных системах. Для обновления обычной системы используйте apm system update и apm system upgrade. Пересборка образа и перезагрузка для применения нового образа в этом случае не требуются.
Для просмотра общей справки и справки по отдельному модулю используйте следующие команды.
apm --help
apm system --helpОсновные модули командной строки.
| Команда | Назначение |
|---|---|
apm system | Управление системными пакетами и образом системы |
apm repo | Управление репозиториями и заданиями |
apm distrobox | Управление контейнерами Distrobox и пакетами в них |
apm version | Показать версию APM |
Для модулей доступны сокращённые имена s для system, r для repo и d для distrobox.
Системные пакеты
Команды поиска и просмотра информации не требуют прав суперпользователя. Для установки, удаления пакетов и обновления системы используйте sudo или сеанс root.
Обновление списка пакетов
Обновите индексы репозиториев и локальную базу пакетов APM следующей командой.
sudo apm system updateПоиск и информация о пакете
Для быстрого поиска по имени пакета используйте команду search.
apm system search firefoxЧтобы искать только среди установленных пакетов, добавьте --installed или -i.
apm system search firefox --installedДля просмотра информации о пакете используйте команду info.
apm system info firefoxДля полного вывода добавьте --full.
Получение списка пакетов
Команда list поддерживает фильтрацию, сортировку и постраничный вывод. Например, первые десять установленных пакетов можно получить следующим образом.
apm system list --filter installed=true --limit 10Для поиска по точному имени используйте фильтр name.
apm system list --filter name=firefoxДля сортировки по размеру загрузки в порядке убывания используйте поле size.
apm system list --sort size --order DESC --limit 10Несколько параметров --filter объединяются условием «И». Для условия «ИЛИ» используйте --or-filter. Операторы фильтров и примеры их использования приведены в справке.
apm system list --helpУстановка пакетов
Установите один или несколько пакетов, перечислив их через пробел.
sudo apm system install firefox
sudo apm system install firefox chromiumПеред выполнением APM показывает изменения и запрашивает подтверждение. Чтобы смоделировать установку без изменения системы, используйте параметр --simulate.
sudo apm system install firefox --simulateДля автоматического подтверждения используйте --yes или -y.
Локальные пакеты RPM
Вместо имени пакета из репозитория можно передать путь к локальному файлу RPM.
sudo apm system install ./my-package.rpmМожно указать несколько файлов через пробел или сочетать их с именами пакетов из репозитория.
sudo apm system install ./my-package.rpm ./another-package.rpmДля предварительной проверки транзакции без установки используйте параметр --simulate.
sudo apm system install ./my-package.rpm --simulateЧтобы обновить такой пакет, установите более новую версию файла RPM той же командой. Удаление выполняется по имени установленного пакета, а не по пути к файлу.
sudo apm system remove my-packageВнимание
Доверенным источником пакетов для системы является подписанный репозиторий или подписанный образ. Локальный файл RPM таким источником не является. Используйте локальную установку только при крайней необходимости.
Перед установкой проверьте происхождение файла и совместимость пакета с выпуском и архитектурой системы. Если для пакета требуются дополнительные зависимости, APM попытается установить их из подключённых репозиториев. Если нужных пакетов там нет, установка завершится ошибкой.
В атомарной системе локальный файл RPM не включается в образ автоматически. Для воспроизводимой установки такого пакета необходимо описать копирование файла и его установку в конфигурации сборки образа.
Удаление пакетов
Для удаления пакета используйте команду remove.
sudo apm system remove firefoxДля удаления пакета вместе с зависимостями, которые больше не нужны, используйте параметр --depends или -d.
sudo apm system remove firefox --dependsВнимание
Перед подтверждением удаления проверьте список затрагиваемых пакетов. Вместе с выбранным пакетом могут быть удалены зависящие от него приложения и системные компоненты. Это может нарушить работу системы.
Особенности удаления в атомарной системе
В атомарной системе команда remove удаляет пакет из текущего окружения, но не изменяет образ. После удаления изменение необходимо зафиксировать в образе и перезагрузить систему.
sudo apm system image apply
sudo rebootКоманда apply переносит выбранные изменения пакетов в декларативную конфигурацию /etc/apm/image.yml, собирает новый локальный образ и переключает на него систему через bootc. Новый образ становится активным после перезагрузки. Если не выполнить apply, после перезагрузки удалённый пакет вернётся.
Параметр --depends действует только на текущую транзакцию. Автоматически удалённые зависимости не записываются в /etc/apm/image.yml. Чтобы исключить их из нового образа, перечислите их в списке remove в конфигурации сборки образа.
При необходимости используйте откат образа.
Внимание
Образ собирается заново из базового образа и конфигурации, а не из текущего состояния файловой системы. Удаление применяется к пакетам базового образа или к пакетам, установленным предыдущими модулями конфигурации. Если пакет был добавлен через список install, APM исключает его из этого списка. Все необходимые компоненты и настройки образа должны быть описаны в /etc/apm/image.yml, иначе они не попадут в следующий образ.
Переустановка пакетов
Для переустановки пакета используйте команду reinstall.
sudo apm system reinstall firefoxВ атомарной системе переустановка выполняется только в текущем окружении и не записывается в /etc/apm/image.yml.
Обновление обычной системы
Сначала обновите индексы репозиториев и локальную базу пакетов.
sudo apm system updateЧтобы заранее посмотреть, какие пакеты будут установлены, обновлены или удалены, выполните симуляцию.
sudo apm system upgrade --simulateЕсли предлагаемые изменения вас устраивают, запустите обновление.
sudo apm system upgradeВ обычной системе APM обновляет установленные пакеты RPM через APT, аналогично команде apt-get dist-upgrade. Обновление изменяет текущую систему. Новый образ и автоматическая точка отката при этом не создаются. Обновление ядра выполняется отдельно штатными средствами ALT Linux.
Работа с атомарным образом
Следующие команды доступны при запуске APM в атомарной системе, например ALT Atomic.
Просмотр состояния и истории
Для просмотра текущего образа и состояния локальной конфигурации используйте команду status.
sudo apm system image statusДля просмотра истории изменений образа используйте команду history.
sudo apm system image historyДля ограничения количества записей используйте --limit.
sudo apm system image history --limit 5Декларативная настройка
Состав образа можно изменить вручную в /etc/apm/image.yml.
image: altlinux.space/alt-atomic/onyx/stable:latest
modules:
- name: My custom packages
type: packages
body:
install:
- hello
- tmuxВ поле image укажите базовый OCI-образ. После редактирования примените конфигурацию и перезагрузите систему.
sudo apm system image apply
sudo rebootОбновление атомарного образа
Команда upgrade обновляет образ системы. При обновлении локально собранного образа APM учитывает конфигурацию /etc/apm/image.yml. Если система использует образ из реестра без локальной сборки, обновление выполняется через bootc upgrade.
sudo apm system upgradeМожно также использовать явную команду image update.
sudo apm system image updateПосле успешного обновления перезагрузите систему.
sudo rebootНовый образ станет активным после перезагрузки. При возникновении проблем используйте откат образа.
Смена базового образа
Команда switch переключает систему на другой совместимый OCI-образ. Адрес образа указывается в формате <реестр>/<образ>:<тег>.
sudo apm system image switch <реестр>/<образ>:<тег>
sudo rebootЛокальные модули из /etc/apm/image.yml сохраняются и применяются к новому базовому образу. Новый образ становится активным после перезагрузки.
Перед сменой образа проверьте его происхождение и совместимость с вашей системой. Для возврата к предыдущему развёртыванию используйте откат образа.
Откат образа
Для отката на предыдущее развёртывание выполните bootc rollback и перезагрузите систему.
sudo bootc rollback
sudo rebootПредыдущий образ также можно выбрать в меню загрузчика GRUB.
Откат не изменяет /etc/apm/image.yml. Если удаление пакета или смена образа останутся в конфигурации, следующий apply или update может применить их повторно.
Управление группами пользователей
В ALT Atomic менеджер системы APM может добавлять существующих пользователей в группы по правилам из YAML-файлов. Конфигурация читается из двух каталогов.
/usr/share/apm/grpconf.d/содержит правила, поставляемые с образом./etc/apm/grpconf.d/содержит локальные правила, которые сохраняются при обновлении образа.
Например, файл /etc/apm/grpconf.d/my-groups.yml может добавлять пользователя user в группы docker и libvirt.
sync:
groups:
- docker
- libvirt
users:
- name: userПримените правила следующей командой.
sudo apm system image sync-groupsЧтобы изменения вступили в силу для текущего пользователя, завершите его сеанс и войдите в систему заново.
В списке users можно выбирать пользователей по имени (name), точному UID (uid) или диапазону UID (uid_range). Если список не указан, правило применяется ко всем пользователям из группы wheel с UID от 1000 до 60000. APM не создаёт пользователей и группы. Они должны уже существовать в системе.
Повторный запуск sync-groups безопасен. Команда не создаёт дубликаты записей и также исправляет расхождения GID с образом. Кроме того, синхронизация автоматически выполняется при загрузке системы службой sync-users.service.
Информация
Команда sync-groups доступна только в атомарных системах. В обычных системах семейства Альт этот механизм не используется.
Управление репозиториями
Модуль repo позволяет просматривать и изменять источники пакетов APT.
Для просмотра активных репозиториев используйте команду list.
apm repo listДля просмотра всех репозиториев, включая неактивные, добавьте параметр --all.
apm repo list --allДля просмотра доступных веток используйте команду branches.
apm repo branchesДобавьте репозиторий по имени ветки или номеру задания.
sudo apm repo add sisyphus
sudo apm repo add 365300Удалите задание из списка источников.
sudo apm repo remove 365300Удалите все репозитории оптических дисков и заданий.
sudo apm repo cleanДля установки пакетов из задания без постоянного подключения его репозитория используйте команду test.
sudo apm repo test 365300APM временно подключает задание, обновляет список пакетов и устанавливает входящие в него пакеты. После завершения операции задание отключается. Перед подтверждением проверьте список изменений.
В атомарной системе установленные таким образом пакеты не добавляются в /etc/apm/image.yml и остаются только в текущем окружении.
Для проверки операции без внесения изменений команды add, remove, set и clean поддерживают параметр --simulate.
Внимание
Изменение ветки или подключение заданий может повлиять на стабильность системы. Используйте только доверенные репозитории. После изменения источников обновите список пакетов командой sudo apm system update.
Distrobox
Если в системе установлен Distrobox, APM позволяет создавать контейнеры и управлять их пакетами без непосредственного вызова пакетного менеджера внутри контейнера. Эти команды выполняются от пользователя.
Создание и удаление контейнера
Создайте контейнер на базе ALT Linux.
apm distrobox container create --image alt --name alt-containerДля создания контейнера доступны следующие образы.
Значение --image | Краткое описание | Имя контейнера по умолчанию |
|---|---|---|
alt | Контейнер на базе ALT Linux | atomic-alt |
ubuntu | Контейнер на базе Ubuntu | atomic-ubuntu |
arch | Контейнер на базе Arch Linux | atomic-arch |
Собственное имя контейнера можно задать с помощью параметра --name.
Для просмотра списка контейнеров используйте команду container list.
apm distrobox container listДля удаления контейнера используйте команду container remove.
apm distrobox container remove --name alt-containerВнимание
Удаление контейнера приводит к необратимому удалению его файловой системы. Перед выполнением команды сохраните нужные данные.
Управление пакетами в контейнере
Для установки пакета используйте команду install.
apm distrobox install hello --container alt-containerПо умолчанию приложение экспортируется на хост. Чтобы оставить его только внутри контейнера, добавьте --no-export.
Для поиска и просмотра информации используйте команды search и info.
apm distrobox search hello --container alt-container
apm distrobox info hello --container alt-containerДля получения списка пакетов контейнера используйте команду list.
apm distrobox list --container alt-containerДля удаления пакета используйте команду remove.
apm distrobox remove hello --container alt-containerЧтобы удалить экспортированное приложение только на хосте, оставив пакет в контейнере, используйте --only-host.
Для синхронизации списка установленных пакетов с базой APM используйте команду update.
apm distrobox update --container alt-containerФормат вывода и конфигурация
По умолчанию APM выводит отформатированный текст. Для использования в скриптах и интеграции с другими программами доступен JSON.
apm --format json system info firefoxКраткая форма параметра -f json. Для текстового вывода можно выбрать представление tree или plain с помощью глобального параметра --format-type.
Основной файл настроек находится в /etc/apm/config.yml. Он не создаётся по умолчанию и используется как в обычных, так и в атомарных системах. В нём можно задать формат текстового вывода, цветовую схему и пути к базам данных.
Параметр pathImageFile в config.yml задаёт путь к файлу описания образа, по умолчанию /etc/apm/image.yml. Этот файл используется при сборке образа командой image build и при управлении локальным образом в атомарной системе.