Что такое диспетчер пакетов в Linux? Как это работает? | DATAENGINER

Что такое диспетчер пакетов в Linux? Как это работает?

Одним из основных отличий дистрибутивов Linux друг от друга является управление пакетами. В этой статье вы узнаете о пакетах и ​​менеджерах пакетов в Linux. Вы узнаете, что такое пакеты, что такое менеджеры пакетов, как они работают и какие менеджеры пакетов доступны.

Что такое диспетчер пакетов в Linux?

Проще говоря, менеджер пакетов — это инструмент, который позволяет пользователям устанавливать, удалять, обновлять, настраивать и управлять пакетами программного обеспечения в операционной системе. Менеджер пакетов может быть графическим приложением, таким как программный центр, или инструментом командной строки, таким как apt-get или pacman .

Что такое пакет?

Пакет обычно относится к приложению, но это может быть приложение с графическим пользовательским интерфейсом, инструмент командной строки или программная библиотека (необходимая для других программ). Пакет — это, по сути, архивный файл, содержащий исполняемый двоичный файл, файл конфигурации и иногда информацию о зависимостях.

В прежние времена, программное обеспечение , использовалось и устанавливалось из исходного кода. Вы должны обратиться к файлу (обычно называемому readme) и посмотреть, какие программные компоненты ему нужны, расположение двоичных файлов. Сценарий настройки или зачастую включаемый make-файл. Вам придется скомпилировать программное обеспечение или самостоятельно или вместе со всеми зависимостями (для некоторых программ требуется установка другого программного обеспечения) самостоятельно.

Чтобы избавиться от этой сложности, дистрибутивы Linux создали свой собственный формат упаковки, чтобы предоставить конечным пользователям готовые к использованию двоичные файлы (предварительно скомпилированное программное обеспечение) для установки программного обеспечения вместе с некоторыми метаданными (номер версии, описание) и зависимостями.

Это как испечь торт, а не купить торт.

Что такое диспетчер пакетов в Linux? Как это работает?

Примерно в середине 90-х Debian создал формат упаковки .deb или DEB, а Red Hat Linux создал систему упаковки .rpm или RPM (сокращение от Red Hat Package Manager). Компиляция исходного кода все еще существует, но теперь это необязательно.

Чтобы взаимодействовать с системами упаковки или использовать их, вам понадобится менеджер пакетов.

Как работает менеджер пакетов?

Имейте в виду, что менеджер пакетов — это общая концепция, а не только для Linux. Вы часто найдете менеджер пакетов для разных программ или языков программирования. Только для пакетов Python есть менеджер пакетов PIP . Даже в редакторе Atom есть собственный менеджер пакетов.

Поскольку в этой статье основное внимание уделяется Linux, я буду рассматривать ситуацию с точки зрения Linux. Однако большая часть объяснения здесь может быть применена и к диспетчеру пакетов в целом.

Я создал эту диаграмму (на основе SUSE Wiki), чтобы вы могли легко понять, как работает менеджер пакетов.

Что такое диспетчер пакетов в Linux? Как это работает?

Почти все дистрибутивы Linux имеют репозитории программного обеспечения, которые в основном представляют собой набор программных пакетов. Да, может быть более одного репозитория. Репозитории содержат программные пакеты различного типа

В репозиториях также есть файлы метаданных, которые содержат информацию о пакетах, такую ​​как имя пакета, номер версии, описание пакета и имя репозитория и т. д. Это то, что вы увидите, если используете команду apt show в Ubuntu / Debian.

Менеджер пакетов вашей системы сначала взаимодействует с метаданными. Диспетчер пакетов создает локальный кеш метаданных в вашей системе. Когда вы запускаете параметр обновления диспетчера пакетов (например, apt update), он обновляет этот локальный кеш метаданных, ссылаясь на метаданные из репозитория.

Когда вы запускаете команду установки вашего менеджера пакетов (например, apt install package_name), менеджер пакетов обращается к этому кешу. Если он находит информацию о пакете в кэше, он использует подключение к Интернету для подключения к соответствующему репозиторию и сначала загружает пакет перед установкой в ​​вашу систему.

У пакета могут быть зависимости. Это означает, что может потребоваться установка других пакетов. Диспетчер пакетов часто заботится о зависимостях и автоматически устанавливает его вместе с пакетом, который вы устанавливаете.

Диспетчер пакетов, обрабатывающий зависимости в Linux
Диспетчер пакетов, обрабатывающий зависимости в Linux

Точно так же, когда вы удаляете пакет с помощью диспетчера пакетов, он либо автоматически удаляет, либо сообщает вам, что в вашей системе есть неиспользуемые пакеты, которые можно очистить.

Помимо очевидных задач по установке и удалению, вы можете использовать диспетчер пакетов для настройки пакетов и управления ими в соответствии с вашими потребностями. Например, вы можете запретить обновление версии пакета из регулярных обновлений системы. Есть еще много вещей, на которые может быть способен ваш менеджер пакетов.





Различные типы менеджеров пакетов

Менеджеры пакетов различаются в зависимости от системы упаковки, но одна и та же система упаковки может иметь более одного менеджера пакетов.

Например, в RPM есть менеджеры пакетов Yum и DNF . Для DEB у вас есть менеджеры пакетов на основе командной строки apt-get, aptitude.

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

Менеджеры пакетов не обязательно основаны на командной строке. У вас есть графические инструменты управления пакетами, такие как Synaptic . Программный центр вашего дистрибутива также является менеджером пакетов, даже если он запускает под ним apt-get или DNF.

Вывод

Я не хочу вдаваться в подробности по этой теме, потому что могу продолжать и продолжать. Но это будет отклоняться от цели темы, которая состоит в том, чтобы дать вам базовое представление о диспетчере пакетов в Linux.

Я пока пропустил новые универсальные форматы упаковки, такие как Snap и Flatpak.

Я очень надеюсь, что вы немного лучше понимаете систему управления пакетами в Linux. Если вы все еще не уверены или у вас есть вопросы по этой теме, воспользуйтесь системой комментариев. Я постараюсь ответить на ваши вопросы и, если потребуется, дополню эту статью новыми моментами.

Постоянный редактор и автор сайта

Leave a reply:

Your email address will not be published.

Site Footer