Смотрите оглавление раздела, посвященного Линукс
DEB и RPM
Это два самых популярных пакетов установки программного обеспечения в Линукс.
DEB это пакеты Debian подобных дистрибутивов: Debian, Ubunta, Mint, Q4OS и тд.
RPM это пакеты дистрибутивов на базе RedHat: Fedora, ROSA, OpenMandriva, Mandrake Linux и тд.
Оба пакета по сути это архивы, которые содержат бинарные файлы, метаданные, пути установки. Вот метаданными установки пакеты различаются, так как созданы для разных менеджеров пакетов - программ, которые устанавливают софт из архива.
RPM
Вначале файла находится заголовок, который идентифицирует файл как rpm архив, затем идет подпись, для проверки целостности и подлинности файла. Дальше идет заголовок, в котором содержаться данные о самом пакете, версия, архитектура, список файлов и т д. И только после всего этого идет сам архив с файлами пакета.
Еще одна особенность пакетов Linux вытекает из следования некоторым постулатам философии Unix, а именно каждый пакет содержит только необходимый минимум файлов и библиотек, все остальные необходимые ему компоненты указываются в качестве зависимостей.
Большинство зависимостей разрешаются в автоматическом режиме корректно. Хотя еще несколько лет назад это была огромная проблема.
Но, есть большая проблема, что для разных дистрибутивов, которые основаны на РедХат могут быть разные программы, а библиотеки носить разные названия. Что создает огромные проблемы для пользователя. Получается что пользователь, если программы нет в официальном репозитории, должен искать rpm именно для своего дистрибутива.
DEB
По большому счету лишены недостатков rpm, практически все программы совместимы со всеми дебиан дистрибутивами. Один и тот же пакет одинаково хорошо ставится и работает как на Debian 6, так и на Ubuntu 19.04. Стандарты процесса построения пакетов и работы с ними, заложенные в старых Debian дистрибутивах, остаются актуальными и в новомодных Linux Mint и elementary OS
Сам пакет представляет из себя обычный архив. Без извратов в виде заголовков.
Существуют специальные утилиты для конвертации одного пакета в другой.
.tgz, tar.gz и другие
Это могут быть как бинарные файлы со скриптом установки, так и архивы исходного кода. Где программа не скомпилирована.
Скажем, дистрибутивы на базе ArchLinux работают на tgz пакетах, с помощью утилиты pacman и графической оболочки pamac . Это тоже архив с банарными файлами по аналогии deb и rpm.
В других дистрибутивах необходимо поставить утилиты для компиляции программ из исходного когда.
Альтернатива менеджерам пакетов
Вопрос, как сделать, что бы все приложения работали без проблем на любом дистрибутиве и не было головной боли с зависимостями, как говориться, лежит на поверхности.
Вот и были созданы следующие пакеты:
Snappy (SNAP) Основная идея: приложение выполняется в изолированной и защищённой от основной системы песочнице. Если приложению нужны библиотеки, то они поставляются вместе с самим приложением.
Flatpak является как форматом пакета, так и инструментом для установки и управления этими пакетами, так же разворачивается в песочнице и запрашивает различные разрешения для доступа к системе. По сути, Flatpak - это конкурент технологии snap пакетов.
Для использования нужно включить поддержку для своей системы https://flatpak.org/setup/
А здесь можно найти хабы(репозитории) https://flathub.org/home
AppImage это портативные образы программ, представляет из себя один файл с разрешением .appImage. Достаточно кликнуть правой кнопкой мыши, сделать файл исполняемым и запустить двойным кликом
Более подробнее я описываю эти файлы в этой статье
Вот вобщем то и все основное о пакетах линукс, я специально избегал командной строки и всяких извращенных случаев, так как статья для обычных пользователей.