README.md

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

Шаги, которые выполняет скрипт:

  1. Создание виртуального окружения:

    • Если виртуальное окружение venv еще не создано, скрипт создаст его с помощью python3 -m venv venv.
    • Если виртуальное окружение уже существует, скрипт пропустит этот шаг.
  2. Активация виртуального окружения:

    • Скрипт активирует виртуальное окружение командой source venv/bin/activate.
  3. Обновление pip:

    • После активации виртуального окружения pip обновляется до последней версии.
  4. Запуск программы:

    • Скрипт запускает основной Python-скрипт altai_se.py с указанным профилем.

Редактирование профиля

Профили позволяют сохранять наборы действий для повторного использования. При первом запуске с новым профилем будет создан новый профиль с шаблоном.

Основные функции редактирования:

  • Добавление/Удаление пакетов для установки:

    • Добавляйте пакеты, которые хотите установить.
    • Удаляйте пакеты из списка установки по мере необходимости.
  • Добавление/Удаление пакетов для удаления:

    • Добавляйте пакеты, которые хотите удалить.
    • Удаляйте пакеты из списка удаления по мере необходимости.
  • Добавление/Удаление команд от пользователя:

    • Введите команды, которые должны выполняться от имени текущего пользователя.
  • Добавление/Удаление команд от root:

    • Введите команды, которые должны выполняться с правами суперпользователя.
  • Редактирование последовательности выполнения блоков:

    • Определите порядок, в котором будут выполняться различные блоки действий (установка пакетов, удаление пакетов, выполнение команд).

Навигация по меню:

Используйте ввод чисел для выбора соответствующих пунктов меню. Следуйте инструкциям на экране для добавления, удаления или изменения элементов в профиле.

Выполнение профиля

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

Шаги выполнения:

  1. Выбор пункта “Запустить выполнение”:

    • В главном меню выберите пункт 7. Запустить выполнение.
  2. Выполнение действий:

    • Программа последовательно выполнит действия в соответствии с порядком, указанным в последовательности выполнения профиля.
  3. Подтверждение удаления пакетов:

    • При удалении пакетов программа предварительно показывает, какие пакеты будут удалены, и запрашивает подтверждение.

Структура профиля

Профили хранятся в формате 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'

Решение:

  1. Проверьте поддержку curses в системном Python:

    Выполните команду:

    python3 -c "import curses"
    
    • Если команда выполняется без ошибок, модуль доступен.
    • Если возникает ошибка, установите необходимые системные библиотеки:

      sudo apt-get update
      sudo apt-get install libncurses5-dev libncursesw5-dev
      
  2. Пересоздайте виртуальное окружение:

    Удалите существующее виртуальное окружение и создайте новое:

    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.


Дополнительные рекомендации

  1. Права доступа:

    • Убедитесь, что у скрипта setup.sh есть права на исполнение:

      chmod +x setup.sh
      
  2. Запуск программы вручную:

    • Если вы хотите запустить программу без использования скрипта setup.sh, активируйте виртуальное окружение и запустите скрипт напрямую:

      source venv/bin/activate
      python3 altai_se.py -profile <имя_профиля>
      
  3. Логирование:

    • Для удобства отладки можете запускать скрипт с перенаправлением вывода в лог-файл:

      ./setup.sh <имя_профиля> | tee setup.log
      
  4. Управление зависимостями:

    • В будущем, если программа будет требовать дополнительных библиотек, добавьте их в файл requirements.txt и обновите виртуальное окружение:

      pip install -r requirements.txt
      
  5. Безопасность:

    • Будьте осторожны при выполнении команд от имени root. Убедитесь, что команды, указанные в профилях, безопасны и не нарушают стабильность системы.
Конвейеры
0 успешных
0 с ошибкой