Подробный гайд: Разработка приложений в среде ALT Linux

Подробный гайд по разработке и упаковке приложений в ALT Linux. Настройка среды, сборка RPM через Hasher, управление зависимостями и публикация пакетов.

2026.05.04                  


Подробный гайд: Разработка приложений в среде ALT LinuxПодробный гайд: Разработка приложений в среде ALT Linux Гайд актуален на май 2026 и ориентирован на современные практики разработки в ALT Linux (ветки p10/p11, Sisyphy, RPM/Hasher, apt-rpm).


1. Введение в экосистему ALT Linux

Параметр Описание
Пакетный менеджер apt-get (apt-rpm), epm (обёртка), legacy urpmi не рекомендуется
Формат пакетов RPM
Ветки репозиториев Sisyphy (rolling/unstable), p10 (стабильная), p11 (актуальная/развиваемая)
Система сборки hasher (изолированная сборка), gear (интеграция с Git), rpmbuild (локальная, не для официальных пакетов)
Философия Детерминированность, воспроизводимость, строгая изоляция зависимостей, поддержка российского стека

2. Подготовка окружения разработки

2.1. Базовая настройка

# Обновление системы
sudo apt-get update
sudo apt-get dist-upgrade

# Установка базового набора разработчика
sudo apt-get install gcc gcc-c++ make cmake git rpm-build hasher \
  pkgconfig autoconf automake libtool gdb valgrind strace

2.2. Выбор и настройка IDE

ALT Linux предоставляет нативные пакеты для большинства сред:

sudo apt-get install qtcreator code geany
  • VS Code / VSCodium: доступен в репозиториях или как epm play vscode
  • JetBrains IDE: рекомендуется использовать .tar.gz с официальных сайтов или epm play, чтобы не конфликтовать с системными библиотеками
  • Git-хуки и форматирование: clang-format, black, pre-commit доступны через apt

2.3. Настройка репозиториев

Файл: /etc/apt/sources.list

rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p11/branch/ x86_64 classic
rpm http://ftp.altlinux.org/pub/distributions/ALTLinux/p11/branch/ noarch classic

Для разработки используйте p11 (актуальная) или p10 (стабильная enterprise). Sisyphy только для тестирования новейших пакетов.


3. Управление зависимостями

3.1. Поиск и установка dev-пакетов

В ALT Linux заголовочные файлы и .pc-файлы находятся в пакетах с суффиксом -devel:

apt-cache search qt5 | grep devel
sudo apt-get install libqt5base-devel libgtk+3-devel python3-devel

3.2. Автоматическая установка зависимостей для сборки

sudo apt-get build-dep <имя_пакета_из_репозитория>

build-dep работает только с пакетами, уже присутствующими в подключённых репозиториях.

3.3. Python-зависимости

Не используйте sudo pip! В ALT Linux рекомендуется:

# Виртуальное окружение (рекомендуется)
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Или пользовательская установка
pip install --user <пакет>

Системные Python-пакеты в ALT именуются как python3-module-<имя>.


4. Сборка и упаковка приложений (RPM/Hasher)

ALT Linux требует изолированной сборки для официальных пакетов. rpmbuild допустим только для локального тестирования.

4.1. Структура проекта

myapp/
├── myapp-1.0.tar.gz          # исходный архив
├── myapp.spec                # spec-файл
├── patches/                  # патчи (если нужны)
└── README.alt                # документация для мейнтейнеров

4.2. Spec-файл (минимальный пример)

Name:           myapp
Version:        1.0
Release:        alt1
Summary:        Example application for ALT Linux
License:        MIT
Group:          Development/Other
URL:            https://example.com/myapp
Source0:        %{name}-%{version}.tar.gz
BuildRequires:  gcc cmake libqt5base-devel
Requires:       libqt5base

%description
Пример приложения для демонстрации сборки в ALT Linux.

%prep
%setup -q

%build
%cmake
%make_build

%install
%makeinstall_std

%files
%{_bindir}/myapp
%doc README.md

Макросы ALT:

`%cmake`, `%make_build`, `%makeinstall_std` автоматизируют стандартные шаги. Полная справка: `man rpm` и `altlinux.org/Spec`

4.3. Сборка через Hasher

# Инициализация окружения (однократно)
sudo hsh --init

# Сборка пакета
hsh myapp.spec

# Тестовая установка в изолированное окружение
hsh --test

Результат: .rpm файлы в ~/hasher/results/

4.4. Интеграция с Git (Gear)

sudo apt-get install gear gear-build
git init
gear-import myapp-1.0.tar.gz
gear-commit -m "Initial import"
gear-build

gear автоматически генерирует spec-файлы, обрабатывает теги и подготавливает патчи для Sisyphy.


5. Разработка на популярных языках

Язык Пакеты в ALT Особенности
C/C++ gcc, clang, cmake, libqt5base-devel, glib2-devel Используйте pkg-config для флагов. alt-gcc включает патчи безопасности
Python 3 python3, python3-devel, python3-module-* Системные пакеты приоритетны. Для pip только venv/--user
Node.js nodejs, npm, yarn Версии в репозиториях стабильные, но не всегда последние. Для newer версий используйте nvm или контейнеры
GUI Qt5/Qt6, GTK3/4, wxWidgets ALT имеет нативную поддержку Qt. Для Electron используйте Flatpak, если нативный пакет отсутствует
Кросс-компиляция mingw32-gcc, aarch64-alt-linux-gcc Доступны через apt. Для ARM/PowerPC используйте qemu-user-static + hasher

6. Отладка, тестирование и профилирование

Инструмент Назначение Установка
gdb / lldb Отладка C/C++ sudo apt-get install gdb lldb
valgrind Поиск утечек памяти sudo apt-get install valgrind
strace / ltrace Трассировка системных/библиотечных вызовов sudo apt-get install strace
perf + hotspot Профилирование CPU sudo apt-get install perf hotspot
pytest / ctest Unit-тесты Python/C++ python3-pytest, cmake-data
podman Изоляция среды sudo apt-get install podman (предпочтительнее Docker в ALT)

Для RPM-пакетов всегда запускайте hsh --test перед публикацией. Это имитирует чистую установку в ALT-совместимом chroot.


7. Публикация и распространение

7.1. Локальное распространение

# Создание локального репозитория
sudo apt-get install createrepo apt-repo
createrepo /path/to/rpms
apt-repo add local /path/to/rpms
sudo apt-get update

7.2. Попадание в официальные репозитории

  1. Станьте мейнтейнером: регистрация на altlinux.org, прохождение собеседования в команде
  2. Создайте задачу в git.altlinux.org или через altlinux.org/tasks
  3. Отправьте spec, патчи, исходники
  4. Пакет проходит ревью, автоматические проверки, попадает в Sisyphy, затем в p10/p11

7.3. Альтернативные каналы

  • Flatpak / AppImage: если пакет не готов для RPM
  • GitHub Releases: выкладывайте .rpm, собранные через hasher
  • Собственный apt-репозиторий: хостите на GitHub Pages / S3 / VPS

7.4. Подписание пакетов

gpg --gen-key
rpm --add-sign myapp-1.0-1.alt1.x86_64.rpm

Для официальных репозиториев требуется ключ, зарегистрированный в ALT Linux Team.


8. Чек-лист для старта

  • [ ] Установить ALT Linux (Workstation или Server)
  • [ ] Настроить apt и подключить ветку p10/p11
  • [ ] Установить gcc, cmake, git, hasher, gdb, pkgconfig
  • [ ] Выбрать язык/фреймворк, установить соответствующие -devel пакеты
  • [ ] Написать приложение, протестировать локально
  • [ ] Создать .spec, подготовить исходный архив
  • [ ] Собрать через hasher, проверить hsh --test
  • [ ] Протестировать установку на чистой VM/контейнере
  • [ ] Опубликовать локально или подготовить заявку в Sisyphy
  • [ ] Подключить CI (GitLab CI / GitHub Actions с hasher-образами ALT)

Частые ошибки и рекомендации

Ошибка Решение
pip install ломает систему Используйте venv или --user
Зависимости не находятся при сборке Проверьте BuildRequires, запустите hsh --test
rpmbuild собирает, но hasher падает hasher изолирует окружение. Добавьте недостающие BuildRequires
Пакет работает на вашей машине, но не в Sisyphy Проверьте версии библиотек, используйте %_alt_linux_version
Конфликт с системными библиотеками Qt/GTK Не переопределяйте /usr/lib, используйте префикс /opt только для проприетарных решений