Подробный гайд: Разработка приложений в среде 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. Попадание в официальные репозитории
- Станьте мейнтейнером: регистрация на
altlinux.org, прохождение собеседования в команде - Создайте задачу в
git.altlinux.orgили черезaltlinux.org/tasks - Отправьте spec, патчи, исходники
- Пакет проходит ревью, автоматические проверки, попадает в
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 только для проприетарных решений |