Менеджеры пакетов

Тема в разделе "Linux", создана пользователем Andrey, 22 авг 2009.

  1. Andrey

    Andrey Администратор

    Сообщения:
    3.234
    Симпатии:
    3.508
    Менеджеры пакетов

    Современные системы на базе 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