Метапакеты start
Метапакеты в Linux — это пустые пакеты, которые только описывают зависимости. Они облегчают установку совместной группы программ, предварительно выбранных сопровождающим метапакета.
По сути пакет представляет собой один rpm-spec, без gear/rules и файлов с исходниками, в котором описан главный пакет (но не всегда) и подпакеты в которых указаны зависимости. Подпакеты могут входить в главный пакет.
При установке такого пакета в систему не добавляются никакие файлы, но из зависимостей пакета ставятся программы.
Если удалить мета-пакет из системы, удалится только он сам, оставив все установленные из зависимостей пакеты в системе.
В данной статье будет описано создание такого пакета в ALT Linux.
Примеры пакетов в ALT Linux
Mate
https://git.altlinux.org/srpms/m/mate.git
mate ├── .git └── mate.spec
Спек:
Name: mate Version: 1.26.0 Release: alt3 Summary: MATE Desktop installers License: %gpl2plus Group: Graphical desktop/MATE BuildArch: noarch BuildPreReq: rpm-build-licenses %description A set of virtual packages for MATE Desktop installation. %package minimal Summary: MATE Desktop minimal installer Group: Graphical desktop/MATE Requires: mate-desktop mate-session mate-panel mate-menus mate-window-manager mate-settings-daemon Requires: mate-polkit mate-control-center mate-media mate-screensaver mate-power-manager mate-notification-daemon Requires: mate-system-monitor mate-file-manager mate-file-archiver mate-terminal mate-text-editor Requires: mate-themes mate-icon-theme mate-backgrounds mate-user-guide %description minimal This virtual package installs MATE Desktop with minimum components. %package default Summary: MATE Desktop installer for optimal user's requirements Group: Graphical desktop/MATE Requires: mate-minimal Requires: mate-calc mate-disk-usage-analyzer Requires: mate-document-viewer mate-document-viewer-caja mate-document-viewer-thumbnailer Requires: mate-file-manager-extensions mate-file-manager-archiver Requires: mate-image-viewer mate-menu-editor mate-screenshot mate-search-tool mate-sensors-applet %description default This virtual package installs MATE Desktop for an average user's requirements. %package maxi Summary: MATE Desktop full installer Group: Graphical desktop/MATE Requires: mate-default Requires: mate-disk-image-mounter Requires: mate-document-viewer-djvu mate-document-viewer-dvi mate-document-viewer-pixbuf mate-document-viewer-xps Requires: mate-file-manager-image-converter mate-file-manager-open-terminal Requires: mate-file-manager-sendto mate-file-manager-share mate-file-manager-wallpaper mate-system-log Requires: python3-module-caja %description maxi This virtual package installs full MATE Desktop. %files minimal %files default %files maxi %changelog * Wed May 14 2025 Anton Midyukov <antohami@altlinux.org> 1.26.0-alt3 - removed mate-file-manager-beesu
Информация
Основные данные:
Name: mate Version: 1.26.0 Release: alt3 Summary: MATE Desktop installers License: %gpl2plus Group: Graphical desktop/MATE BuildArch: noarch %description A set of virtual packages for MATE Desktop installation.
Пакет minimal:
%package minimal Summary: MATE Desktop minimal installer Group: Graphical desktop/MATE Requires: mate-desktop mate-session mate-panel mate-menus mate-window-manager mate-settings-daemon Requires: mate-polkit mate-control-center mate-media mate-screensaver mate-power-manager mate-notification-daemon Requires: mate-system-monitor mate-file-manager mate-file-archiver mate-terminal mate-text-editor Requires: mate-themes mate-icon-theme mate-backgrounds mate-user-guide %description minimal This virtual package installs MATE Desktop with minimum components.
Пакет default:
%package default Summary: MATE Desktop installer for optimal user's requirements Group: Graphical desktop/MATE Requires: mate-minimal Requires: mate-calc mate-disk-usage-analyzer Requires: mate-document-viewer mate-document-viewer-caja mate-document-viewer-thumbnailer Requires: mate-file-manager-extensions mate-file-manager-archiver Requires: mate-image-viewer mate-menu-editor mate-screenshot mate-search-tool mate-sensors-applet %description default This virtual package installs MATE Desktop for an average user's equirements.
Пакет maxi:
%package maxi Summary: MATE Desktop full installer Group: Graphical desktop/MATE Requires: mate-default Requires: mate-disk-image-mounter Requires: mate-document-viewer-djvu mate-document-viewer-dvi mate-document-viewer-pixbuf mate-document-viewer-xps Requires: mate-file-manager-image-converter mate-file-manager-open-terminal Requires: mate-file-manager-sendto mate-file-manager-share mate-file-manager-wallpaper mate-system-log Requires: python3-module-caja %description maxi This virtual package installs full MATE Desktop. %files minimal %files default %files maxi
Конечные файлы
%files minimal %files default %files maxi
Пакеты
В результате получатся следующие пакеты:
- mate-minimal
- mate-default
- mate-maxi
Попробуем создать метапакет с любимыми программами
Создаем каталог:
$ mkdir mymeta
Инициализируем git:
mymeta$ git init .
Пишем спек mymeta.spec:
Name: petr-apps Version: 1.0 Release: alt1 Summary: Apps for Petr Akhlamov License: none Group: none BuildArch: noarch %description A set of virtual packages for install apps for Petr Akhlamov. %package graphics Summary: Graphics apps License: none Group: Graphics Requires: gimp darktable rawtherapee converseen shutter inkscape %description graphics This virtual package installs graphics apps for Petr Akhlamov %package office Summary: Office apps License: none Group: Office Requires: LibreOffice-still LibreOffice-still-langpack-ru LibreOffice-still-gtk3 LibreOffice-still-qt6 kde5-korganizer kde5-profile foliate qpdfview mytetra scantailor ocrmypdf pdfarranger pdfshuffler pdfmixtool %description office This virtual package installs office apps for Petr Akhlamov %package multimedia Summary: Multimedia apps License: none Group: Multimedia Requires: clementine qmmp vlc-maxi mpc-qt audacity shotcut mkvtoolnix-gui cheese obs-studio isomaster %description multimedia This virtual package installs multimedia apps for Petr Akhlamov %package network Summary: Network apps License: none Group: Network Requires: firefox thunderbird yt-dlp qbittorrent telegram-desktop %description network This virtual package installs network apps for Petr Akhlamov %package education Summary: Education apps License: none Group: Education Requires: stellarium %description education This virtual package installs education apps for Petr Akhlamov %package system Summary: System apps License: none Group: System Requires: qdirstat bleachbit grub-customizer hardinfo cpu-x doublecmd-qt %description system This virtual package installs system apps for Petr Akhlamov %package full Summary: All apps License: none Group: none Requires: petr-apps-graphics Requires: petr-apps-office Requires: petr-apps-multimedia Requires: petr-apps-network Requires: petr-apps-education Requires: petr-apps-system %description full This virtual package installs all apps for Petr Akhlamov %files graphics %files office %files multimedia %files network %files education %files system %files full %changelog * Thu Jul 17 2025 Petr Akhlamov <ahlamovpm@basealt.ru> 1.0-alt1 - initial build
Добавляем информацию в репозиторий и собираем пакет:
$ git add . $ git commit -am "add apps" $ gear --hasher -- hsh --no-sisyphus-check -v
Содержимое репозитория:
my_packages ├── .git └── mymeta.spec
Конечные файлы
%files graphics %files office %files multimedia %files network %files education %files system %files full
Пакеты
В результате получатся следующие пакеты:
- petr-apps-graphics
- petr-apps-office
- petr-apps-multimedia
- petr-apps-network
- petr-apps-education
- petr-apps-system
- petr-apps-full