Добавил:
Developer Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Старые ответы на экзамен Павлова.docx
Скачиваний:
52
Добавлен:
17.08.2022
Размер:
4 Мб
Скачать
☆
  1. Управление пакетами

Система управления пакетами — набор программного обеспечения, позволяющего управлять процессом установки, удаления, настройки и обновления различных компонентов программного обеспечения. Системы управления пакетами активно используются в различных дистрибутивах операционной системы Linux и других UNIX-подобных операционных системах.

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

В Debian для управления пакетами имеется множество средств, от программ с графическими или текстовыми интерфейсами, до низкоуровневых утилит установки пакетов. Корректная работа всех доступных инструментов зависит от низкоуровневых утилит, и все они представлены здесь в порядке уменьшения уровня сложности.

Высокоуровневые инструменты управления пакетами, такие как aptitude или dselect, для управления пакетами используют apt, который, в свою очередь, использует dpkg.

RPM — система управления пакетами, изначально разрабатываемая компанией Red Hat для операционной системы Red Hat Linux. Ныне RPM применяется во множестве дистрибутивов операционной системы Linux, например, Fedora, RHEL, ASP Linux, ALT Linux, Mandriva, openSUSE.

dpkg — система управления пакетами, используемая в операционной системе Debian и различных дистрибутивах, основанных на ней, например Ubuntu.

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

Portage — основная система управления пакетами в Gentoo. Аналог системы портов FreeBSD. Представляет собой набор утилит на Python и Bash, призванных облегчить и упорядочить установку программного обеспечения из исходных кодов или бинарных пакетов, с учетом всех зависимостей.

Entropy — система управления пакетами в Sabayon Linux. Представляет альтернативу portage и может устанавливаться совместно с ней, совместимость с которой обеспечивается путём запуска специальных сценариев. Для этой системы существуют текстовый клиент — Equo и графический — Sulfur.

PiSi — система управления пакетами, используется турецким дистрибутивом Pardus

Image Packaging System — система управления пакетами, созданная Sun Microsystems для OpenSolaris.

Репозитории

Как правило, система управления пакетами работает со множеством пакетов, хранящихся в специальном репозитории — хранилище, которое может располагаться как на локальных запоминающих устройствах (оптическом или жёстком диске), так и на удалённой машине (HTTP, FTP или rsync-сервере).

  1. Установщики пакетов

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

В системах Linux формат пакетов не унифицирован, распространено несолько различных форматов, и для каждого из них требуется собственный установщик пакетов. Наиболее известны rpm, dpkg, используемый в Debian, а также пакеты в формате tgz (он же tar.gz — файловый архив tar, сжатый упаковщиком gzip, GNU Zip), то есть обычные файловые архивы, где вся необходимая в пакете метаинформация упакована в виде файлов наряду с файлами программного обеспечения. Установщики пакетов различаются не только форматом пакетов, с которыми они работают, но и кргуом возможностей, внутренним форматом хранения информации и т. д.

установщик пакетов

Программа, выполняющая основные операции с пакетами: установку, удаление, проверку, вывод информации о пакетах.

Рассмотрим один из установщиков пакетов — rpm (Red Hat Package Manager). Он первоначально возник в дистрибутиве RedHat, но в настоящее время используется и во многих других дистрибутивах. Пожалуй, сейчас его можно назвать самым распространённым форматом: авторы программ для Linux обычно выкладывают свои программы в Интернет в виде файловых архивов tgz и пакетов rpm.

Обратной стороной популярности rpm является его нестандартность. Под расширением .rpm довольно редко оказывается канонический формат, разрабатываемый RedHat. В формате rpm смогли усмотреть много недостатков и недоделок, поэтому распостранено множество улучшенных и дополненных версий rpm, и, соответственно, пакетов, ориентированных на какую-то из этих версий, но носящих всё то же расширение. На практике это означает, что разные версии rpm не полностью совместимы между собой, поэтому даже если в вашей системе используется rpm, это совершенно не означает, что вы сможете установить любой найденный в Интернете пакет в этом формате.

Случай rpm — только самая яркая демонстрация более общей проблемы: в общем случае ни в одном дистрибутиве нельзя без потерь, помех или ручного вмешательства установить пакет, не разработанный специально для данного дистрибутива. В следующем разделе (Package.Менеджеры пакетов) изложены некоторые соображения, почему это нежелательно, и почему следует по возможности пользоваться именно «родными» пакетами, а если их нет — делать их самостоятельно.

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