Altai SE
Altai SE — инструмент настройки системы ALT Linux, написанный на Python с простым текстовым интерфейсом (TUI). Программа позволяет автоматизировать установку и удаление пакетов, выполнение команд от имени пользователя и root, а также управлять последовательностью этих действий через профили.
Репозиторий проекта: https://gitflic.ru/project/armatik/altai-se.git
Описание
Altai SE предоставляет удобный способ настройки вашей системы через профили, которые содержат списки пакетов для установки и удаления, а также команды для выполнения от имени пользователя и root. Это упрощает процесс управления системой и обеспечивает гибкость в настройке.
Важно: Программа проверяет наличие sudo
и, если его нет, пытается включить sudowheel
для получения доступа к sudo
.
Установка
Шаг 1: Клонирование репозитория или копирование файлов
Клонируйте репозиторий или скопируйте файлы программы в нужную директорию на вашем компьютере.
git clone https://gitflic.ru/project/armatik/altai-se.git
cd altai-se
Шаг 2: Убедитесь, что установлен Python 3 и виртуальное окружение
Проверьте, установлен ли Python 3:
python3 --version
Если Python 3 не установлен, установите его командой:
sudo apt-get update
sudo apt-get install python3 python3-venv
Шаг 3: Предоставьте скрипту setup.sh
права на исполнение
Сделайте скрипт setup.sh
исполняемым:
chmod +x setup.sh
Использование
Запуск программы через setup.sh
Скрипт setup.sh
автоматизирует процесс создания виртуального окружения, обновления pip
и запуска основной программы с указанным профилем.
Синтаксис:
./setup.sh <имя_профиля>
Пример:
./setup.sh default
Шаги, которые выполняет скрипт:
-
Создание виртуального окружения:
- Если виртуальное окружение
venv
еще не создано, скрипт создаст его с помощьюpython3 -m venv venv
. - Если виртуальное окружение уже существует, скрипт пропустит этот шаг.
- Если виртуальное окружение
-
Активация виртуального окружения:
- Скрипт активирует виртуальное окружение командой
source venv/bin/activate
.
- Скрипт активирует виртуальное окружение командой
-
Обновление
pip
:- После активации виртуального окружения
pip
обновляется до последней версии.
- После активации виртуального окружения
-
Запуск программы:
- Скрипт запускает основной Python-скрипт
altai_se.py
с указанным профилем.
- Скрипт запускает основной Python-скрипт
Редактирование профиля
Профили позволяют сохранять наборы действий для повторного использования. При первом запуске с новым профилем будет создан новый профиль с шаблоном.
Основные функции редактирования:
-
Добавление/Удаление пакетов для установки:
- Добавляйте пакеты, которые хотите установить.
- Удаляйте пакеты из списка установки по мере необходимости.
-
Добавление/Удаление пакетов для удаления:
- Добавляйте пакеты, которые хотите удалить.
- Удаляйте пакеты из списка удаления по мере необходимости.
-
Добавление/Удаление команд от пользователя:
- Введите команды, которые должны выполняться от имени текущего пользователя.
-
Добавление/Удаление команд от root:
- Введите команды, которые должны выполняться с правами суперпользователя.
-
Редактирование последовательности выполнения блоков:
- Определите порядок, в котором будут выполняться различные блоки действий (установка пакетов, удаление пакетов, выполнение команд).
Навигация по меню:
Используйте ввод чисел для выбора соответствующих пунктов меню. Следуйте инструкциям на экране для добавления, удаления или изменения элементов в профиле.
Выполнение профиля
После настройки профиля вы можете запустить выполнение всех действий, указанных в профиле.
Шаги выполнения:
-
Выбор пункта “Запустить выполнение”:
- В главном меню выберите пункт 7. Запустить выполнение.
-
Выполнение действий:
- Программа последовательно выполнит действия в соответствии с порядком, указанным в последовательности выполнения профиля.
-
Подтверждение удаления пакетов:
- При удалении пакетов программа предварительно показывает, какие пакеты будут удалены, и запрашивает подтверждение.
Структура профиля
Профили хранятся в формате JSON в папке profiles
. Каждый профиль содержит списки пакетов для установки и удаления, а также команды для выполнения от имени пользователя и root.
Пример структуры профиля:
{
"install_packages": ["package1", "package2"],
"remove_packages": ["package3"],
"user_commands": ["echo 'Hello, user!'"],
"root_commands": ["echo 'Hello, root!'"],
"execution_sequence": ["install_packages", "remove_packages", "user_commands", "root_commands"]
}
Описание полей:
- install_packages: Список пакетов, которые будут установлены с помощью
apt-get install
. - remove_packages: Список пакетов, которые будут удалены с помощью
apt-get remove
. - user_commands: Команды, выполняемые от имени текущего пользователя.
- root_commands: Команды, выполняемые с правами суперпользователя (root).
- execution_sequence: Порядок выполнения блоков действий.
Требования
- Python 3.x
- ОС ALT Linux или совместимая с
apt-get
- Доступ к
su
иsudo
: Убедитесь, что текущий пользователь имеет праваsudo
для выполнения команд, требующих повышенных привилегий. - Установленный
python3-venv
: Для создания виртуального окружения.
Устранение неполадок
Проблема: Модуль curses
не найден
Если при запуске программы возникает ошибка:
ModuleNotFoundError: No module named 'curses'
Решение:
-
Проверьте поддержку
curses
в системном Python:Выполните команду:
python3 -c "import curses"
- Если команда выполняется без ошибок, модуль доступен.
-
Если возникает ошибка, установите необходимые системные библиотеки:
sudo apt-get update sudo apt-get install libncurses5-dev libncursesw5-dev
-
Пересоздайте виртуальное окружение:
Удалите существующее виртуальное окружение и создайте новое:
rm -rf venv ./setup.sh default
Проблема: Команды apt-get
не выполняются из-за отсутствия sudo
Если команды установки или удаления пакетов завершаются с ошибками доступа:
E: Запись в /var/cache/apt/ невозможна
E: Невозможно прочитать список пакетов или файл статуса.
Решение:
Убедитесь, что команды управления пакетами выполняются с правами sudo
. В обновлённом скрипте altai_se.py
это уже учтено. Если проблема сохраняется, проверьте:
-
Наличие пользователя в группе
sudo
:groups
Если пользователя нет в группе
sudo
, добавьте его:sudo usermod -aG sudo <имя_пользователя>
-
Правильная конфигурация
sudo
:Убедитесь, что
sudo
правильно настроен и работает:sudo whoami
Должен выводиться
root
.
Лицензия
Свободное программное обеспечение; вы можете распространять и/или изменять его в соответствии с условиями лицензии MIT.
Дополнительные рекомендации
-
Права доступа:
-
Убедитесь, что у скрипта
setup.sh
есть права на исполнение:chmod +x setup.sh
-
-
Запуск программы вручную:
-
Если вы хотите запустить программу без использования скрипта
setup.sh
, активируйте виртуальное окружение и запустите скрипт напрямую:source venv/bin/activate python3 altai_se.py -profile <имя_профиля>
-
-
Логирование:
-
Для удобства отладки можете запускать скрипт с перенаправлением вывода в лог-файл:
./setup.sh <имя_профиля> | tee setup.log
-
-
Управление зависимостями:
-
В будущем, если программа будет требовать дополнительных библиотек, добавьте их в файл
requirements.txt
и обновите виртуальное окружение:pip install -r requirements.txt
-
-
Безопасность:
- Будьте осторожны при выполнении команд от имени
root
. Убедитесь, что команды, указанные в профилях, безопасны и не нарушают стабильность системы.
- Будьте осторожны при выполнении команд от имени