Современные системы на базе Linux состоят из огромного числа зависимых библиотек, исполняемых файлов, скриптов и т.д. Удаление или изменение версии одного из составляющих систему компонентов может повлечь неработоспособность других, связанных с ним компонентов, или даже вывести из строя всю систему.
Большая часть программного обеспечения в Linux, изначально, поставляется в виде исходных текстов. Для установки требуется скомпилировать программу и получить бинарную версию. Для поддержания целостности и обеспечения возможности распространения программ в бинарном виде используются менеджеры пакетов.
Пакет содержит собранную программу, информацию о том, какие требуется совершить действия для ее установки, информацию о зависимостях (см ниже), а также возможно много других данных, в зависимости от вида пакета.
Часто компоненты, используемые различными программами, выделяют в отдельные пакеты и помечают, что для работы ПО, предоставленного пакетом A, необходимо установить пакет B. В таком случае говорят, что пакет A зависит от пакета B или что между пакетами A и B существует зависимость.
Отслеживание зависимостей между такими пакетами представляет собой серьёзную задачу для любого дистрибутива— некоторые компоненты могут быть взаимозаменяемыми и при удовлетворении тех или иных требований может обнаружиться несколько пакетов, предлагающих затребованный ресурс.
Задача контроля целостности и непротиворечивости установленного в системе ПО еще сложнее. Представим, что некие программы A и B требуют наличия в системе компоненты C версии 1.0. Обновление версии пакета A, требующее обновления компоненты C до новой, использующей новые возможности версии (скажем, до версии 2.0), влечёт за собой обязательное обновление и программы B.
Менеджер пакетов - это набор инструментов, позволяющих автоматизировать процесс установки, обновления, конфигурирования и удаления пакетов программного обеспечения с компьютера.
Менеджер пакетов реализует следующие функции:
- Контроль целостности пакетов
- Поддержку установки, обновления и удаления пакетов
- Контроль зависимостей
- Реализацию поиска по доступным/установленным пакетам
Обычно менеджер пакетов является сердцем дистрибутива, обеспечивая полный контроль целостности и работоспособности всей системы.
Пакеты собираются в репозитории. Менеджер пакетов обеспечивает пользователю интерфейс для автоматизированного получения пакета, его зависимостей и его установку.
Принцип работы:
Пользователь запрашивает установку пакета -> МП отслеживает зависимости -> МП получает необходимые пакеты из репозиториев -> МП устанавливает зависимости и требуемый пакет.
Практически каждый дистрибутив Linux имеет свои репозитории, зачастую не совместимые с другими дистрибутивами.
Менеджер пакетов - консольная утилита, однако, обычно к ней существуют многочисленные графические оболочки. К примеру, менеджер пакетов dpkg, имеет как консольные оболочки (apt, aptitude), так и графические Synaptic, Adept....
Основные виды менеджеров пакетов:
- dpkg - Используется в Debian, Ubuntu, и многих других дистрибутивах. Формат пакета: deb.
- RPM - Используется в RedHat Linux, Fedora, SUSE, Mandriva и многих других. Формат пакета: rpm.
- Pacman - Используется в ArchLinux, производных и некоторых других дистрибутивах. Формат пакета: pkg.tar.gz
- APT-RPM - Используется в AltLinux
Источник: easylinux.ru