Подробный гайд: установка и настройка Qt5 в ALT Linux
Важное уточнение про qt5-default
Пакет qt5-default существует только в экосистеме Debian/Ubuntu. Он был создан как временный костыль для переключения между Qt4 и Qt5 и официально удалён из репозиториев ещё в 2021 году.
В ALT Linux (и вообще в RPM-дистрибутивах) такого пакета нет. Разработка под Qt5 строится на стандартных пакетах заголовочных файлов, утилитах сборки и pkg-config. Ниже приведён актуальный и проверенный способ настройки Qt5-окружения в ALT Linux.
1. Подготовка системы
ALT Linux использует apt-rpm (команды аналогичны Debian, но работают с RPM-пакетами).
Убедитесь, что система обновлена:
sudo apt-get update
sudo apt-get upgrade
2. Установка Qt5 для разработки
Основной метапакет для разработки под Qt5 в ALT Linux:
sudo apt-get install libqt5-devel
Этот пакет автоматически подтянет:
- Заголовочные файлы (
/usr/include/qt5/) - Утилиты сборки:
qmake-qt5,moc-qt5,uic-qt5,rcc-qt5 - Базовые модули:
Qt5Core,Qt5Gui,Qt5Widgets,Qt5Networkи др.
Дополнительные пакеты (по необходимости)
| Задача | Пакет |
|---|---|
| Полноценная IDE | qtcreator |
| Отладка GUI | qt5-qttools, linguist-qt5 |
| SQL-модули | libqt5sql-devel (выберите нужный драйвер: libqt5sql-mysql-devel, libqt5sql-psql-devel и т.д.) |
| Мультимедиа | libqt5multimedia-devel |
| WebEngine | libqt5webengine-devel |
Поиск доступных модулей:
apt-cache search libqt5 | grep devel
3. Проверка установки
# Версия qmake
qmake-qt5 --version
# Проверка видимости модулей через pkg-config
pkg-config --modversion Qt5Core
pkg-config --cflags Qt5Widgets
# Наличие заголовков
ls /usr/include/qt5/QtCore | head
Если команды отработали без ошибок → окружение готово.
4. Сборка тестового проекта
Вариант A: через qmake (классический способ)
1. Создайте директорию и файлы:
mkdir qt5-test && cd qt5-test
nano main.cpp
main.cpp:
#include <QApplication>
#include <QPushButton>
#include <QLabel>
int main(int argc, char *argv[]) {
QApplication app(argc, argv);
QLabel label("Hello from Qt5 on ALT Linux!");
label.resize(300, 100);
label.show();
return app.exec();
}
2. Создайте .pro-файл:
nano test.pro
QT += core widgets
TARGET = test
SOURCES = main.cpp
3. Соберите:
qmake-qt5
make
./test
Вариант B: через CMake (современный стандарт)
1. Установите CMake, если нет:
sudo apt-get install cmake gcc-c++ pkg-config
2. CMakeLists.txt:
cmake_minimum_required(VERSION 3.10)
project(Qt5Test LANGUAGES CXX)
set(CMAKE_CXX_STANDARD 17)
set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTORCC ON)
find_package(Qt5 REQUIRED COMPONENTS Core Widgets)
add_executable(test main.cpp)
target_link_libraries(test Qt5::Core Qt5::Widgets)
3. Сборка:
cmake -B build -S .
cmake --build build
./build/test
5. Нюансы ALT Linux
| Особенность | Решение |
|---|---|
Имя утилиты qmake |
В ALT она называется qmake-qt5. Символическая ссылка qmake может указывать на Qt6 или отсутствовать. |
| Переменные окружения | Обычно не нужны. pkg-config и cmake находят Qt5 автоматически. |
| Ветка дистрибутива | В p10/p11/Sisyphus имена пакетов идентичны. Версии Qt5 различаются: в p10 ~5.15, в Sisyphus может быть новее. |
| Графическая подсистема | Для работы GUI убедитесь, что запущен X11/Wayland-сервер и установлены шрифты: fonts-ttf-dejavu, fonts-liberation. |
Альтернативы и рекомендации
- Qt6 уже в ALT Linux: если проект не привязан к Qt5, рассмотрите
libqt6-devel. API почти идентичен, но производительность и поддержка современных стандартов выше. - Qt Creator:
sudo apt-get install qtcreatorдаст полноценную IDE с автодополнением, отладчиком и интеграцией с qmake/CMake. - Изоляция зависимостей: для сложных проектов используйте
conanилиvcpkg, либо собирайте Qt из исходников в/opt/qt5/сconfigure -prefix /opt/qt5.
Типичные ошибки и решения
| Ошибка | Причина | Решение |
|---|---|---|
qmake-qt5: command not found |
Не установлен libqt5-devel или qt5-qtbase-devel |
sudo apt-get install libqt5-devel |
Project ERROR: Unknown module(s) in QT: webengine |
Модуль не установлен | sudo apt-get install libqt5webengine-devel |
pkg-config: Qt5Core not found |
Отсутствует pkgconfig или dev-пакет |
sudo apt-get install pkg-config libqt5-devel |
Ошибка линковки -lQt5Core |
Не переданы флаги в ручную сборку | Используйте qmake-qt5 или cmake, либо добавьте $(pkg-config --cflags --libs Qt5Core Qt5Widgets) |