Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Архив1 / docx53 / note - 7.docx
Скачиваний:
31
Добавлен:
01.08.2013
Размер:
457.93 Кб
Скачать
  1. Основные принципы систем управления пакетами и обзор программных решений

    1. Назначение систем управления пакетами

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

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

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

Репозито́рий, хранилище — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.

Существуют репозитории для хранения программ, написанных на одном языке (например, CPAN для Perl, PYPI для Python) или предназначенных для одной платформы. Многие современные операционные системы, такие как OpenSolaris, FreeBSD и большинство дистрибутивов Linux, имеют официальные репозитории, но также позволяют устанавливать пакеты из других мест. Большинство репозиториев бесплатны, однако некоторые компании предоставляют доступ к собственным репозиториям за платную подписку.

    1. Требования систем управления пакетами

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

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

  2. Возможность удобного обновления установленных программных пакетов

  3. Возможность удобного внесения изменений в состав существующих репозиториев, содержащих программные пакеты

Все эти требования успешно удовлетворены в представленной системе управления пакетами.

    1. Анализ существующих решений rpm

RPM (рекурсивный акроним RPM Package Manager — RPM — менеджер пакетов; ранее раскрывался как Red Hat Package Manager — менеджер пакетов Red Hat) обозначает две сущности: формат пакетов программного обеспечения и программа, созданная для управления этими пакетами. Программа позволяет устанавливать, удалять и обновлять программное обеспечение. RPM является основным форматом пакетов в LSB.

Изначально разработанный компанией Red Hat для Red Hat Linux, RPM стал использоваться во многих дистрибутивах Linux и был портирован на другие операционные системы: Novell NetWare (с версии 6.5 SP3), IBM AIX (с версии 5) и прочие.

Для хранения файлов в формате RPM используется архивный контейнер cpio, с использованием сжатия утилитой gzip. В более поздних версиях может быть использован архиватор star и сжатие с помощью bzip2, LZMA или XZ. Начиная с версии RPM 5.0 возможно использование архиватора XAR.

Преимущества RPM над другими средствами управления и установкой программного обеспечения:

  • Лёгкость удаления и обновления программ

  • Популярность: очень многие программы собираются именно в RPM, поэтому нет необходимости собирать программу из исходных кодов

  • «Неинтерактивная установка»: легко автоматизировать процесс установки/обновления/удаления

  • Проверка целостности пакетов с помощью контрольных сумм и GPG-подписей

  • DeltaRPM, аналог патча, позволяющий обновить установленное программное обеспечение с минимальной затратой трафика

  • Возможность аккумуляции опыта сборщиков в spec-файле

  • Относительная компактность spec-файлов за счёт использования макросов

Основные недостатки:

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

  • Раздробленность и несовместимость различных версий. Так, существуют проекты по разработке RPM 4 (rpm.org), RPM5 (rpm5.org), а также большое количество патчей на RPM в дистрибутивах. В частности, это приводит к:

    • Несовместимости spec-файлов между дистрибутивами (spec-файл ALT Linux чаще всего невозможно собрать на Red Hat или SuSE без значительных исправлений)

    • Несовместимости названий пакетных зависимостей при попытке установить пакет от другого дистрибутива (например, зависимости в RPM сборки Connectiva создаются по другим правилам, нежели в Mandriva).

Apt

Apt (advanced packaging tool) — программа для установки, обновления и удаления программных пакетов в операционных системах Debianи основанных на них (Ubuntu,Edubuntuи т. п.), иногда также используется в дистрибутивах, основанных на Mandrake, напримерMandriva,ALTLinuxиPCLinuxOS. Способна автоматически устанавливать и настраивать программы для UNIX-подобных операционных систем как из предварительно откомпилированных пакетов, так и из исходных кодов.

Пакеты берутся из интернет-репозиториев, либо их можно установить с имеющихся носителей. Список источников пакетов хранится в файле/etc/apt/sources.list и в каталоге /etc/apt/sources.list.d/. Графические оболочки для apt позволяют легко добавлять новые и удалять ненужные источники.

apt (apt-get) значительно упрощает процесс установки программ в командном режиме. Для пользователей, предпочитающих графический интерфейс, более удобным может оказаться другие front-end'ы —SynapticиAdept. Существует текстово‐графический интерактивный пакет (использующий ncurses) —aptitude.

Pacman

Pacman является официальным менеджером пакетов для дистрибутива Arch Linux. Pacman был разработан создателем Arch Linux Джаддом Вине.

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

Все пакеты Pacman представляют собой сжатые tar-архивы, каждый из которых содержит программы в откомпилированном виде. Пакеты загружаются по протоколам FTP или HTTP с определённых сайтов. Pacman дополняет Arch Linux Build System (ABS — система сборки Arch Linux), используемую для создания пакетов из исходных текстов.

Соседние файлы в папке docx53