Alteratorctl

Материал из ALT Linux Wiki
Версия от 17:55, 25 марта 2025; Savelevsa (обсуждение | вклад) (Обновлена информация о модуле components)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)


Stub.png
Данная страница находится в разработке.
Эта страница ещё не закончена. Информация, представленная здесь, может оказаться неполной или неверной.

alteratorctl — консольное приложение, предназначенное для вызова методов интерфейсов, разработанных в рамках Alterator на D-Bus.

Назначение

Программа ADT предназначена для:

  1. Системных администраторов.
  2. Опытных пользователей.

alteratorctl является компонентом новой реализации проекта Альтератор, Alterator на D-Bus.

Установка

Для установки alteratorctl из задания (таски), воспользуйтесь поиском.

Команды установки

# apt-repo add <номер_задания>
# apt-get update
# apt-get install alteratorctl

Описание модулей

Приложение имеет модульную структуру. Каждый модуль предназначен для работы с определенным интерфейсом объектов на D-Bus. Запуск модулей осуществляется при помощи команды

$ alteratorctl <имя_модуля> <команда_модуля>

Команда $ alteratorctl <имя_модуля> --help отображает возможности модулей.

Посмотреть список модулей можно при помощи команды $ alteratorctl -m:

alteratorctl-editions1.png


В настоящий момент реализовано 6 модулей:

manager

Использует интерфейс org.altlinux.alterator.manager объекта /org/altlinux/alterator.

editions

Использует интерфейс org.altlinux.alterator.edition1 объектов из пакетов с редакциями.

Модуль предоставляет возможность выбора редакции и получения информации о составе доступных к выбору редакций.

Для работы некоторых команд модуля могут потребоваться права администратора.

Информация по редакциям

Редакция — набор компонентов в составе дистрибутива. Каждая редакция содержит индивидуальный набор предустановленных и доступных для установки компонентов.

Список доступных редакций на данный момент:

  1. Альт Сервер (edition_server)
  2. Альт Домен (edition_domain)

Структура редакции

Структура редакции представляется в формате TOML и имеет следующий вид:

type = "Edition"
name = "имя редакции"
display_name.en = "Отображаемое имя редакции на английском"
display_name.ru = "Отображаемое имя редакции на русском"

license = "Имя лицензии/Релиз"
arches = [ "Архитектура 1", "Архитектура 2" ]

desktop_environment = "Графическое окружение"
kflavours = { default = "Версия ядра по умолчанию", options = [ "Версия ядра 1", "Версия ядра 2" ] }
languages = { default = "Язык по умолчанию", options = [ "Язык 1", "Язык 2" ] }

[sections.base]
display_name.en = "Имя базовой секции компонентов, входящих в образ на английском"
display_name.ru = "Имя базовой секции компонентов, входящих в образ на русском"
components = [
    "Компонент 1",
    "Компонент 2",
    "…",
    "Компонент N"
]

[sections.main]
display_name.en = "Имя секции компонентов, доступных к установке на английском"
display_name.ru = "Имя секции компонентов, доступных к установке на русском"
components = [
    "Компонент 1",
    "Компонент 2",
    "…",
    "Компонент N"
]

Использование модуля

Модуль предусматривает использование следующих команд и опций:

Команды:
description [название редакции]         получить описание выбранной редакции.
get                                     получить название текущей редакции.
info [название редакции]                вывести информацию о выбранной редакции.
license [название редакции]             вывести информацию о лицензии выбранной редакции.
list [опции]                            вывести список доступных редакций.
set [название редакции]                 установить выбранную редакцию.

Опции:
-d, --display-name-only                 показать только отображаемые имена редакций.
-D, --no-display-name                   скрыть отображаемые имена редакций.
-p, --path-only                         отобразить пути объектов редакций на D-Bus.
-n, --name-only                         отобразить только имена объектов редакций.
-N, --no-name                           скрыть отображение имён объектов редакций.
-h, --help                              показать справку модуля editions.

Примеры использования модуля

  1. Отображение имени текущей редакции.
    • Команда alteratorctl editions выведет список доступных редакций и покажет текущую:
    alteratorctl-editions2.png
  2. Отображение только имени объекта текущей редакции.
    • Команда alteratorctl editions get покажет имя объекта текущей редакции:
    alteratorctl-editions3.png
  3. Установка выбранной редакции.
    • Команда alteratorctl editions set edition_domain установит редакцию Альт Домен:
    alteratorctl-editions4.png
  4. Получение информации о лицензии выбранной редакции.
    • Команда alteratorctl editions license edition_domain покажет информацию о лицензии редакции Альт Домен:
    alteratorctl-editions5.png
    Конкретно в данном случае вывод команды alteratorctl editions license edition_domain не будет отличаться от вывода команды alteratorctl editions license.

components

Использует интерфейс org.altlinux.alterator.component1 объектов установленных компонентов.

Модуль позволяет:

  • Просматривать список компонентов;
  • Просматривать информацию о компонентах (статус, описание, состав);
  • Устанавливать/удалять компоненты.

Для работы некоторых команд модуля могут потребоваться права администратора.

Информация по компонентам

Компонент — набор пакетов, предоставляющих определённую функциональность, и некоторую последовательность действий (deploy) для их конфигурации.

Структура компонента

Подробнее про состав и структуру компонентов можно прочитать на соответствующей станице alt-components. Также здесь можно прочитать про аналог alteratorctl в виде графического приложения для работы с компонентами — alterator-application-components.

Использование модуля

Модуль предусматривает использование следующих команд и опций:

Формат использования:
alteratorctl components                 вывести все компоненты в виде дерева с псевдографикой.
alteratorctl components [КОМАНДА [аргументы]] [ОПЦИИ] [ПАРАМЕТРЫ <аргументы…>]

Команды:
description <название компонента>       получить описание выбранного компонента.
list [ОПЦИИ] [ПАРАМЕТРЫ <аргументы…>]   вывести все компоненты с категориями.
info <название компонента>              получить информацию о выбранном компоненте.
install <название компонента>           установить выбранный компонент.
remove <название компонента>            удалить выбранный компонент.
status <название компонента>            узнать статус установки компонента (установлен/не установлен).

Параметры:
-c, --category <название категории>     вывести список всех компонентов выбранной категории.

Опции:
--draft                                 выводить черновые компоненты и категории.
-I, --ignore-sections                   игнорировать секции редакции при выводе компонентов.
-L, --ignore-legend                     игнорировать вывод условных обозначений при выводе компонентов.
-g, --graphic-tree                      вывести компоненты и категории в виде дерева с псевдографикой.
-t, --simple-tree                       вывести компоненты и категории в виде простого дерева.
-l, --list                              вывести компоненты и категории в виде списка.
                                        для вывода отображаемых имён можно использовать опцию --show-display-name 
                                        (опция используется только в данном представлении вывода компонентов).
--no-update                             не обновлять списки пакетов перед установкой или удалением компонента.
-p, --path-only                         отобразить пути объектов компонентов на D-Bus.
-d, --display-name-only                 показать только отображаемые имена компонентов и категорий.
-D, --no-display-name                   скрыть отображаемые имена компонентов и категорий.
-s, --show-display-name                 показывать отображаемые имена компонентов и категорий.
-n, --name-only                         отобразить только имена объектов компонентов.
-N, --no-name                           скрыть отображение имён компонентов и категорий.
-i, --installed                         отображать только установленные компоненты.
-u, --uninstalled                       отображать только неустановленные компоненты.
-h, --help                              вызвать справку модуля components.

Примеры использования модуля

  1. Отображение категорий и компонентов.
    • Команда alteratorctl components -g выведет компоненты в виде дерева с псевдографикой:
    alteratorctl-components1.png
    В данном случае команда alteratorctl components -g будет аналогичная команде alteratorctl components
    • Команда alteratorctl components -t выводит компоненты в виде простого дерева:
    alteratorctl-components2.png
    • Команда alteratorctl components -l выводит компоненты в виде списка:
    alteratorctl-components3.png
    • Также можно вывести список компонентов с отображением их имён, а не только имён объектов при помощи команды alteratorctl components -l —show-display-name:
    alteratorctl-components4.png
    • Команда alteratorctl components list -p выводит пути объектов компонентов на D-Bus в виде дерева с псевдографикой:
    alteratorctl-components5.png
  2. Отображение статусов компонентов.
    • Команда alteratorctl components list -l -i выведет список установленных на данный момент компонентов:
    alteratorctl-components9.png
    • Команда alteratorctl components list -l -u выведет список не установленных компонентов:
    alteratorctl-components6.png
  3. Установка и удаление компонентов.
    • Команда alteratorctl components description samba-dc позволит посмотреть описание компонента samba-dc, а команда alteratorctl components install samba-dc позволит его установить:
    alteratorctl-components7.png
    • Команда alteratorctl components remove samba-dc позволит удалить компонент samba-dc:
    alteratorctl-components8.png

diag

Использует интерфейс org.altlinux.alterator.diag1 объектов установленных инструментов диагностики.

packages

Использует интерфейсы org.altlinux.alterator.rpm1, org.altlinux.alterator.apt1, org.altlinux.alterator.repo объектов org/altlinux/alterator/rpm, /org/altlinux/alterator/apt, /org/altlinux/alterator/repo соответственно.

systeminfo

Использует интерфейс org.altlinux.alterator.systeminfo1 объекта org/altlinux/alterator/systeminfo.

Спецификация

Документация представлена на странице проекта.

Пример

Опишем типовой внутренний модуль alteratorctl и архитектуру модуля.

Внутренний клиентский модуль - объект класса, реализующего интерфейс AlteratorCtlModuleInterface по принципу, принятому в GLib для объектно-ориентированного программирования.

Интерфейс AlteratorCtlModuleInterface предполагает, что в модуле должны быть реализованы 3 метода:

  • run_with_args - запуск модуля с параметрами командной строки;
  • run - запуск модуля с контекстом;
  • print_help - вывод справки об использовании модуля.

Регистрация модуля

Модуль в alteratorctl необходимо зарегистрировать перед его использованием. Регистрация модуля осуществляется вызовом метода alterator_ctl_register_module() у объекта app типа AlteratorCtlApp в функции main.

В функцию передается указатель на объект типа AlteratorCtlApp, где происходит регистрация, и на структуру типа alterator_ctl_module_t, в которой есть указатели на конструкторы, деструкторы и id модуля.

Id модуля

Id модуля представляет собой указатель на строку, содержащую имя модуля. Именно по имени модуля alteratorctl понимает, какой модуль запустить. Модуль указывается первым после общих ключей alteratorctl в командной строке.

Например,

$ alteratorctl -v manager help

где
* -v - общий для модулей параметр
* manager - имя (id) запускаемого модуля
* help - подкоманда для модуля manager.

Конструктор модуля

Конструктор модуля - функция, возвращающая указатель на AlteratorCtlComponentsModule. Конструктор модуля принимает в виде параметров:

  • указатель на AlteratorCtlApp, в котором зарегистрирован модуль;
  • указатель на структуру типа alteratorctl_arguments_t, которая содержит общие для всех модулей параметры.

Деструктор

Деструктор - функция в структуре alterator_ctl_module_t. Принимает указатель на экземпляр класса внутреннего модуля, ресурсы которого будут освобождены.

Создание контекста модуля

  1. Метод run_with_args
    Этот метод запускает модуль, передавая ему параметры командной строки. Обычно в этом методе происходит парсинг аргументов командной строки, создается контекст модуля. И этот контекст передается в метод run.
  2. Метод run
    Метод run принимает контекст модуля и непосредственно выполняет необходимые запросы на D-Bus. Модуль должен быть выполнен таким образом, чтобы его можно было вызвать из другого модуля при инициализации контекста модуля. После выполнения метода run, контекст необходимо освободить специализированной функцией.
  3. Метод print _help
    Выводит в stdout описание команд и параметров командной строки модуля.