Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

Synaptic , пример полнофункционального менеджера пакетов

Менеджер пакетов или система управления пакетами представляет собой набор программных средств , который автоматизирует процесс установки, обновления, настройки и удаления компьютерных программ для компьютера «s операционной системы последовательным образом. [1]

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

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

Функции [ править ]

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

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

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

Проблемы с общими библиотеками [ править ]

Компьютерные системы, которые полагаются на динамическое связывание библиотек вместо связывания статических библиотек , совместно используют исполняемые библиотеки машинных инструкций между пакетами и приложениями. В этих системах сложные отношения между разными пакетами, требующими разных версий библиотек, приводят к проблеме, в просторечии известной как « ад зависимостей ». В системах Microsoft Windows это также называется « адом DLL » при работе с динамически подключаемыми библиотеками. В этих системах жизненно важно хорошее управление пакетами. [4] Фреймворк от OPENSTEP была попыткой решить эту проблему, позволив одновременно установить несколько версий библиотек, а для пакетов программного обеспечения указать, с какой версией они связаны.

Интерфейсы для локально скомпилированных пакетов [ править ]

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

Существуют инструменты, позволяющие обеспечить интеграцию скомпилированных локально пакетов с системой управления пакетами. Для дистрибутивов, основанных на файлах .deb и .rpm, а также на Slackware Linux, есть CheckInstall , а для систем на основе рецептов, таких как Gentoo Linux, и гибридных систем, таких как Arch Linux , можно сначала написать рецепт, который затем гарантирует что пакет помещается в локальную базу данных пакетов. [ необходима цитата ]

Сохранение конфигурации [ править ]

В частности, при обновлении программного обеспечения возникают проблемы с обновлением файлов конфигурации. Поскольку менеджеры пакетов, по крайней мере в системах Unix, возникли как расширения утилит для архивирования файлов , они обычно могут либо перезаписывать, либо сохранять файлы конфигурации, а не применять к ним правила. Есть исключения из этого, которые обычно применяются к конфигурации ядра (которая, если она сломана, сделает компьютер непригодным для использования после перезапуска). Проблемы могут быть вызваны изменением формата файлов конфигурации; например, если старый файл конфигурации не отключает явно новые параметры, которые должны быть отключены. Некоторые менеджеры пакетов, такие как Debian «S DPKG, разрешите настройку во время установки. В других ситуациях желательно установить пакеты с конфигурацией по умолчанию, а затем перезаписать эту конфигурацию, например, при автономной установке на большое количество компьютеров. Этот тип предварительно настроенной установки также поддерживается dpkg.

Хранилища [ править ]

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

Подавление обновления [ править ]

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

Например:

  • yum поддерживает это с помощью синтаксиса exclude = openoffice * [6]
  • pacman с IgnorePkg = openoffice [7] (чтобы запретить обновление openoffice в обоих случаях)
  • dpkg и dselect частично поддерживают это посредством флага удержания в выборе пакетов
  • APT расширяет удержание флага через сложный механизм «пиннинг» [8] (Пользователи могут также черный список пакет [9] )
  • aptitude имеет флаги "удерживать" и "запрещать"
  • portage поддерживает это через конфигурационный файл package.mask

Каскадное удаление пакетов [ править ]

Некоторые из более продвинутых функций управления пакетами предлагают «каскадное удаление пакетов» [7], при котором все пакеты, зависящие от целевого пакета, и все пакеты, от которых зависит только целевой пакет, также удаляются.

Сравнение команд [ править ]

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

В Arch Linux вики предлагает Pacman / Rosetta обширный обзор. [11]

Распространенность [ править ]

Менеджеры пакетов, такие как dpkg , существовали еще в 1994 году. [12]

Дистрибутивы Linux, ориентированные на двоичные пакеты, в значительной степени полагаются на системы управления пакетами как на основное средство управления и поддержки программного обеспечения. Мобильные операционные системы, такие как Android (на основе Linux), iOS (на основе Unix ) и Windows Phone, полагаются почти исключительно на магазины приложений соответствующих поставщиков и, таким образом, используют свои собственные специализированные системы управления пакетами.

  • apt-get, утилита CLI, устанавливающая MediaWiki

  • Aptitude также имеет TUI

  • Synaptic , графический интерфейс для многих менеджеров пакетов Linux

  • Apper , графический интерфейс Qt для PackageKit

  • Программное обеспечение GNOME , графический интерфейс GTK + для PackageKit

  • Octopi, графический интерфейс Qt для менеджера пакетов Pacman

  • Pamac, графический интерфейс GTK + для менеджера пакетов Pacman

  • winget, утилита Windows Package Manager CLI для Windows 10

Сравнение с установщиками [ править ]

Менеджер пакетов часто называют «менеджером установки», что может привести к путанице между менеджерами пакетов и установщиками . Отличия включают:

Сравнение с утилитой автоматизации сборки [ править ]

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

Однако у обоих инструментов есть много общего:

  • Например, топологическая сортировка графа зависимостей, используемая в диспетчере пакетов для обработки зависимостей между двоичными компонентами, также используется в диспетчере сборки для обработки зависимости между исходными компонентами.
  • Например, многие make- файлы поддерживают не только сборку исполняемых файлов, но и их установку с помощью make install.
  • Например, каждый менеджер пакетов для дистрибутива на основе исходного кода - Portage , Sorcery , Homebrew и т. Д. - поддерживает преобразование удобочитаемого исходного кода в двоичные исполняемые файлы и его установку.

Некоторые инструменты, такие как Maak и AAP , предназначены для обработки как сборки, так и развертывания, и могут использоваться либо как утилита автоматизации сборки, либо как менеджер пакетов, либо и то, и другое. [13]

Общие менеджеры пакетов и форматы [ править ]

Универсальный менеджер пакетов [ править ]

Также известный как менеджер двоичного репозитория , это программный инструмент, предназначенный для оптимизации загрузки и хранения двоичных файлов, артефактов и пакетов, используемых и созданных в процессе разработки программного обеспечения . [14] Эти менеджеры пакетов стремятся стандартизировать способ, которым предприятия обрабатывают все типы пакетов. Они дают пользователям возможность применять показатели безопасности и соответствия для всех типов артефактов. Универсальные менеджеры пакетов считаются центральным элементом цепочки инструментов DevOps . [15]

Форматы пакетов [ править ]

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

Например, yum использует rpm как бэкэнд. Yum расширяет функциональность серверной части, добавляя такие функции, как простая конфигурация для обслуживания сети систем. В качестве другого примера Synaptic Package Manager предоставляет графический пользовательский интерфейс с помощью библиотеки Advanced Packaging Tool (apt) , которая, в свою очередь, полагается на dpkg для выполнения основных функций.

Иностранец это программа , которая преобразует между различными форматами пакетов Linux , поддерживает преобразование между Linux Standard Base (LSB) , совместимые .rpm пакеты, .deb , Stampede (.slp), Solaris (.pkg) и Slackware ( .tgz , .txz ,. tbz, .tlz) пакеты.

В мобильных операционных систем, Google Play потребляет Android пакет приложений (APK) формат пакета , а Windows Store использует APPX и XAP форматы. (И в Google Play, и в Windows Store есть одноименные менеджеры пакетов.)

Бесплатное программное обеспечение с открытым исходным кодом [ править ]

По природе бесплатного программного обеспечения с открытым исходным кодом, пакеты под аналогичными и совместимыми лицензиями доступны для использования в ряде операционных систем. Эти пакеты можно объединять и распространять с помощью конфигурируемых и внутренних сложных систем упаковки для обработки множества вариантов программного обеспечения и управления зависимостями и конфликтами, зависящими от версии. Некоторые системы упаковки бесплатного программного обеспечения с открытым исходным кодом также выпускаются как бесплатное программное обеспечение с открытым исходным кодом. Одно из типичных различий между управлением пакетами в проприетарных операционных системах, таких как Mac OS X и Windows, и в бесплатном программном обеспечении с открытым исходным кодом, таком как Linux, заключается в том, что бесплатные программные системы с открытым исходным кодом позволяют также устанавливать сторонние пакеты обновляется с помощью того же механизма, тогда как менеджеры пакетов Mac OS X и Windows обновляют только программное обеспечение, предоставленное Apple и Microsoft,соответственно (за исключением некоторых сторонних драйверов в Windows). Возможность постоянно обновлять стороннее программное обеспечение обычно добавляется путем добавленияURL-адрес соответствующего репозитория файла конфигурации управления пакетами.

Менеджеры пакетов на уровне приложения [ править ]

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

В отличие от менеджеров пакетов системного уровня, менеджеры пакетов прикладного уровня сосредотачиваются на небольшой части системы программного обеспечения. Обычно они находятся в дереве каталогов, которое не поддерживается менеджером пакетов системного уровня, например c: \ cygwin или / usr / local / fink . Однако это может быть не так для менеджеров пакетов, которые имеют дело с библиотеками программирования, что может привести к конфликту, поскольку оба менеджера пакетов могут заявить, что они «владеют» файлом, и могут нарушить обновления.

Воздействие [ править ]

Ян Мердок прокомментировал, что управление пакетами - это «самое большое достижение, которое Linux принес в отрасль», что оно стирает границы между операционной системой и приложениями, и что оно «упрощает внедрение новых [...] инноваций в среду. маркетплейс и [...] развивать ОС ". [16]

См. Также [ править ]

  • AppStream
  • Flatpak
  • Установка (компьютерные программы)
  • InstallShield
  • Список систем управления программными пакетами
  • Формат упаковки
  • Snap (менеджер пакетов)
  • Установщик Windows

Ссылки [ править ]

  1. ^ "Что такое менеджер пакетов?" . Архивировано из оригинального 17 октября 2017 года . Проверено 19 декабря 2018 .
  2. ^ «Распространение программного обеспечения» . Dell KACE. Архивировано из оригинала 3 октября 2015 года . Проверено 11 июля 2012 года .
  3. ^ Людовик Куртес, Функциональное управление пакетами с Guix , июнь 2013 г., Мадрид, European Lisp Symposium 2013
  4. Такер, Крис (15 марта 2007 г.). «OPIUM: Менеджер установки / удаления оптимальных пакетов» (PDF) . Материалы 29-й международной конференции по программной инженерии - ACM Conferences . Калифорнийский университет в Сан-Диего: 1. doi : 10.1109 / ICSE.2007.59 . Проверено 14 сентября 2011 года .
  5. ^ "Схемы классификации репозиториев Linux" . braintickle.blogspot.com . Проверено 1 марта 2008 года .
  6. ^ "CentOS yum pinning rpms" . centos.org. Архивировано 2 ноября 2007 года . Проверено 1 марта 2008 года .CS1 maint: неподходящий URL ( ссылка )
  7. ^ a b "Страница руководства pacman (8)" . archlinux.org . Проверено 1 марта 2008 года .
  8. ^ «Как сохранить установленные версии пакетов (комплекс)» . debian.org . Проверено 1 марта 2008 года .
  9. ^ "Возможность закрепления пакета в черном списке" . Архивировано из оригинального 22 июля 2011 года . Проверено 19 августа 2010 года .
  10. ^ "документация / sles11" . en.opensuse.org .
  11. ^ "Pacman / Rosetta - ArchWiki" . wiki.archlinux.org . Проверено 17 сентября 2017 года .
  12. ^ "Исходный код dpkg версии 0.93.15" . Архивировано из оригинала 2 апреля 2015 года . Проверено 19 декабря 2018 .
  13. ^ Eelco Dolstra, «Интеграция разработки программного обеспечения и развертывания программного обеспечения» .
  14. ^ Уотерс, Джон К. (8 сентября 2015 г.). "JFrog выпускает универсальный репозиторий артефактов" . ADT Mag . Журнал «Тенденции разработки приложений».
  15. ^ Декостер, Xavier (18 августа 2013). «Обзор экосистемы NuGet» . CodeProject.com .
  16. ^ «Как управление пакетами все изменило» . ianmurdock.com. Архивировано из оригинального 23 февраля 2009 года . Проверено 1 марта 2008 года .

Внешние ссылки [ править ]

  • Шпаргалка по управлению пакетами (Distrowatch)
  • ArchLinux Rosetta Stone - сравнение командной строки для менеджеров пакетов
  • универсальный менеджер пакетов upkg - оболочка, обеспечивающая одинаковый синтаксис для всех разновидностей Linux.