Alteratorctl: различия между версиями

Материал из ALT Linux Wiki
(Добавлено описание для модуля editions. Немного изменена структура страницы.)
Нет описания правки
 
(не показано 9 промежуточных версий этого же участника)
Строка 13: Строка 13:


=== Назначение ===
=== Назначение ===
Программа ADT предназначена для:
Программа '''alteratorctl''' предназначена для:
# Системных администраторов.
# Системных администраторов.
# Опытных пользователей.
# Опытных пользователей.
Строка 40: Строка 40:
Посмотреть список модулей можно при помощи команды <code>$ alteratorctl -m</code>:
Посмотреть список модулей можно при помощи команды <code>$ alteratorctl -m</code>:


[[Файл:Alteratorctl-editions1.png|безрамки|альт=alteratorctl-editions1.png]]
[[Файл:Alteratorctl-editions1.png|безрамки|alteratorctl-editions1.png]]




Строка 46: Строка 46:
=== manager ===
=== manager ===
Использует интерфейс <tt>org.altlinux.alterator.manager</tt> объекта <tt>/org/altlinux/alterator</tt>.
Использует интерфейс <tt>org.altlinux.alterator.manager</tt> объекта <tt>/org/altlinux/alterator</tt>.
=== editions ===
Использует интерфейс <tt>org.altlinux.alterator.edition1</tt> объектов из пакетов с редакциями.


Модуль предоставляет возможность выбора редакции и получения информации о составе доступных к выбору редакций.
Более подробную информацию о возможностях модуля можно найти на соответствующей странице: [https://www.altlinux.org/Alteratorctl/manager_module Модуль Alteratorctl — manager]


Для работы некоторых команд модуля могут потребоваться права администратора.
=== editions ===
Более подробную информацию о возможностях модуля можно найти на соответствующей странице: [https://www.altlinux.org/Alteratorctl/editions_module Модуль Alteratorctl — editions]


==== Информация по редакциям ====
=== components ===
Редакция — набор компонентов в составе дистрибутива. Каждая редакция содержит индивидуальный набор предустановленных и доступных для установки компонентов.
Более подробную информацию о возможностях модуля можно найти на соответствующей странице: [https://www.altlinux.org/Alteratorctl/components_module Модуль Alteratorctl — components]


Подробнее про установку компонентов и работу с ними можно прочитать на соответствующей странице [[alt-components]].
=== diag ===
Использует интерфейс <tt>org.altlinux.alterator.diag1</tt> объектов установленных инструментов диагностики.


Список доступных редакций на данный момент:
Более подробную информацию о возможностях модуля можно найти на соответствующей странице: [https://www.altlinux.org/Alteratorctl/diag_module Модуль Alteratorctl — diag]
# Альт Сервер (edition_server)
# Альт Домен (edition_domain)


==== Структура редакции ====
=== packages ===
Структура редакции представляется в формате TOML и имеет следующий вид:
Использует интерфейсы <tt>org.altlinux.alterator.rpm1, org.altlinux.alterator.apt1, org.altlinux.alterator.repo</tt> объектов <tt>org/altlinux/alterator/rpm, /org/altlinux/alterator/apt, /org/altlinux/alterator/repo </tt> соответственно.
<pre>
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"
]
</pre>
 
==== Использование модуля ====
Модуль предусматривает использование следующих команд и опций:
<pre>
Команды:
description [название редакции]        получить описание выбранной редакции.
get                                    получить название текущей редакции.
info [название редакции]                вывести информацию о выбранной редакции.
license [название редакции]            вывести информацию о лицензии выбранной редакции.
list [опции]                            вывести список доступных редакций.
set [название редакции]                установить выбранную редакцию.


Опции:
Более подробную информацию о возможностях модуля можно найти на соответствующей странице: [https://www.altlinux.org/Alteratorctl/packages_module Модуль Alteratorctl — packages]
-d, --display-name-only                показать только отображаемые имена редакций.
-D, --no-display-name                  скрыть отображаемые имена редакций.
-p, --path-only                        отобразить пути объектов редакций на D-Bus.
-n, --name-only                        отобразить только имена объектов редакций.
-N, --no-name                          скрыть отображение имён объектов редакций.
-h, --help                              показать справку модуля editions.
</pre>


==== Примеры использования модуля ====
<ol>
  <li>Отображение имени текущей редакции.
</ol>
::Команда <code>alteratorctl editions</code> выведет список доступных редакций и покажет текущую:
::[[Файл:Alteratorctl-editions2.png|безрамки|альт=alteratorctl-editions2.png]]
<ol start=2>
  <li>Отображение только короткого англоязычного названия текущей редакции.
</ol>
::Команда <code>alteratorctl editions get</code> покажет короткое англоязычное название текущей редакции:
::[[Файл:Alteratorctl-editions3.png|безрамки|альт=alteratorctl-editions3.png]]
<ol start=3>
  <li>Установка выбранной редакции.
</ol>
::Команда <code>alteratorctl editions set edition_domain</code> установит редакцию Альт Домен:
::[[Файл:Alteratorctl-editions4.png|безрамки|альт=alteratorctl-editions4.png]]
<ol start=4>
  <li>Получение информации о лицензии выбранной редакции.
</ol>
::Команда <code>alteratorctl editions license edition_domain</code> покажет информацию о лицензии редакции Альт Домен:
[[Файл:Alteratorctl-editions5.png|альт=alteratorctl-editions5.png]]
::Конкретно в данном случае вывод команды <code>alteratorctl editions license edition_domain</code> не будет отличаться от вывода команды <code>alteratorctl editions license</code>.
=== components ===
Использует интерфейс <tt>org.altlinux.alterator.component1</tt> объектов установленных компонентов.
=== diag ===
Использует интерфейс <tt>org.altlinux.alterator.diag1</tt> объектов установленных инструментов диагностики.
=== packages ===
Использует интерфейсы <tt>org.altlinux.alterator.rpm1, org.altlinux.alterator.apt1, org.altlinux.alterator.repo</tt> объектов <tt>org/altlinux/alterator/rpm, /org/altlinux/alterator/apt, /org/altlinux/alterator/repo </tt> соответственно.
=== systeminfo ===
=== systeminfo ===
Использует интерфейс <tt>org.altlinux.alterator.systeminfo1</tt> объекта <tt>org/altlinux/alterator/systeminfo</tt>.
Использует интерфейс <tt>org.altlinux.alterator.systeminfo1</tt> объекта <tt>org/altlinux/alterator/systeminfo</tt>.
Более подробную информацию о возможностях модуля можно найти на соответствующей странице: [https://www.altlinux.org/Alteratorctl/systemctl_module Модуль Alteratorctl — systemctl]


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

Текущая версия от 16:18, 4 апреля 2025


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

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

Назначение

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

  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.

Более подробную информацию о возможностях модуля можно найти на соответствующей странице: Модуль Alteratorctl — manager

editions

Более подробную информацию о возможностях модуля можно найти на соответствующей странице: Модуль Alteratorctl — editions

components

Более подробную информацию о возможностях модуля можно найти на соответствующей странице: Модуль Alteratorctl — components

diag

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

Более подробную информацию о возможностях модуля можно найти на соответствующей странице: Модуль Alteratorctl — diag

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 соответственно.

Более подробную информацию о возможностях модуля можно найти на соответствующей странице: Модуль Alteratorctl — packages

systeminfo

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

Более подробную информацию о возможностях модуля можно найти на соответствующей странице: Модуль Alteratorctl — systemctl

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

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

Пример

Опишем типовой внутренний модуль 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 описание команд и параметров командной строки модуля.