Метапакеты start

Материал из ALT Linux Wiki

Метапакеты в 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 .
Примечание: Gear/rules не нужен!!!

Пишем спек 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

См. также про использованные в статье материалы