Jump to content

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

Synaptic , пример менеджера пакетов

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

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

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

История [ править ]

Первым менеджером пакетов был SMIT (и его внутренняя программа установки) от IBM AIX . SMIT был представлен вместе с AIX 3.0 в 1989 году. [ нужна ссылка ]

Ранние менеджеры пакетов, выпущенные примерно в 1994 году, не имели автоматического разрешения зависимостей. [3] но уже может радикально упростить процесс добавления и удаления программного обеспечения из работающей системы. [4]

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

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

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

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

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

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

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

Современные менеджеры пакетов в основном решили эти проблемы, позволяя параллельную установку нескольких версий библиотеки (например, OPENSTEP Framework системы ), любых зависимостей (например, слотов в Gentoo Portage ) и даже пакетов, скомпилированных с помощью разных версий компилятора. (например, динамические библиотеки, созданные компилятором Glasgow Haskell , где не существует стабильного ABI ), чтобы позволить другим пакетам указывать, с какой версией они были связаны или даже установлены.

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

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

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

Обслуживание конфигурации [ править ]

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

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

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

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

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

Например:

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

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

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

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

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

${PKG} или %PKG% это имя пакета.
Действие Домашнее пиво подходящий пакман днф ( ням ) волок застегивание молнии [13] Никс xbps [14] налетел [15] WinGet
Установить пакет brew install ${PKG} apt install ${PKG} pacman -S ${PKG} dnf install ${PKG} emerge ${PKG} zypper in ${PKG} nix-env -i ${PKG} xbps-install ${PKG} swupd bundle-add ${PKG} winget install %PKG%
Удалить пакет brew uninstall ${PKG} apt remove ${PKG} pacman -R ${PKG} dnf remove --nodeps ${PKG} emerge -C ${PKG} или
emerge --unmerge ${PKG}
zypper rm -RU ${PKG} nix-env -e ${PKG} xbps-remove ${PKG} swupd bundle-remove ${PKG} winget uninstall %PKG%
Обновить все brew upgrade apt upgrade pacman -Syu dnf update emerge -u -D --with-bdeps=y @world zypper up nix-env -u && nix-collect-garbage xbps-install -Su swupd update winget upgrade --all
Обновить базу данных программного обеспечения brew update apt update pacman -Sy dnf check-update emerge --sync zypper ref nix-channel --upgrade xbps-install -S swupd update --download или
swupd update --update-search-file-index
winget list > NUL
Показать обновляемые пакеты brew outdated apt list --upgradable pacman -Qu dnf check-update emerge -avtuDN --with-bdeps=y @world или
emerge -u --pretend @world
( -D это сокращение от --deep и
-u это сокращение от --update.)
zypper lu
nix-channel --upgrade && \
nix-env -u && \
nix-collect-garbage
./xbps-src update-check ${PKG}(требуется репозиторий void-packages) swupd update -s или
swupd check-update
winget upgrade
Удалить сирот и настроить brew autoremove && brew cleanup apt autoremove pacman -Rsn $(pacman -Qdtq) dnf erase ${PKG} emerge --depclean zypper rm -u nix-collect-garbage -d xbps-remove -of
swupd bundle-remove --orphans && \
swupd clean --all
Показать сирот brew autoremove --dry-run pacman -Qdt package-cleanup -q --leaves --exclude-bin
( -q это сокращение от --quiet.)
emerge -caD или
emerge --depclean --pretend
zypper pa --orphaned --unneeded xbps-remove -o swupd bundle-list --orphans
Удалить пакет (и сирот)
brew uninstall ${PKG} && brew autoremove
apt autoremove ${PKG} pacman -Rs ${PKG} dnf remove ${PKG} emerge -c ${PKG} или
emerge --depclean ${PKG}
zypper rm -u --force-resolution ${PKG} nix-env -e ${PKG} && nix-env -u xbps-remove -R ${PKG}
swupd bundle-remove ${PKG} && \
swupd bundle-remove --orphans
winget uninstall %PKG%

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

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

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

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

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

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

Критерий Менеджер пакетов Установщик
Поставляется с Обычно операционная система Каждая компьютерная программа
Местонахождение информации об установке Одна центральная база данных установки Это полностью на усмотрение установщика. Это может быть файл в папке приложения или среди файлов и папок операционной системы. В лучшем случае они могут зарегистрироваться в списке деинсталляторов, не раскрывая информацию об установке.
Объем технического обслуживания Потенциально все пакеты в системе Только тот товар, с которым он был в комплекте
Разработано Один поставщик менеджера пакетов Несколько поставщиков установщиков
Формат упаковки Несколько известных форматов Форматов может быть столько же, сколько приложений.
Совместимость форматов пакетов Можно использовать, если менеджер пакетов поддерживает это. Либо новые версии менеджера пакетов продолжают его поддерживать, либо пользователь не обновляет менеджер пакетов. Установщик всегда совместим со своим форматом архива , если он его использует. Однако установщики, как и все компьютерные программы, могут быть подвержены гниению программного обеспечения .

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

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

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

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

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

Сравнение с магазинами приложений [ править ]

Магазины приложений также можно рассматривать как менеджеры пакетов уровня приложений без возможности установки программ всех уровней. [19] [20] ). В отличие от традиционных менеджеров пакетов, магазины приложений предназначены для оплаты самого программного обеспечения (а не за его разработку) и могут предлагать только монолитные пакеты без зависимостей или разрешения зависимостей. [21] [20] Они обычно крайне ограничены в своих функциях управления из-за сильного акцента на упрощении управления питанием или появлением и распространены в коммерческих операционных системах и заблокированных «умных» устройствах.

Менеджеры пакетов также часто имеют только код, проверенный человеком. Многие магазины приложений, такие как Google Play и Apple App Store, проверяют приложения в основном только с помощью автоматизированных инструментов; вредоносное ПО с устройствами поражения может пройти эти тесты, определяя, когда программное обеспечение проходит автоматическое тестирование, и задерживая вредоносную активность. [22] [23] [24] Однако есть исключения; проверку своего например, база данных пакетов npm полностью полагается на после публикации , кода [25] [26] в то время как база данных пакетов Debian проходит обширный процесс проверки человеком, прежде чем какой-либо пакет попадет в основную стабильную базу данных. Бэкдор XZ Utils потратил годы усилий по построению доверия, чтобы вставить бэкдор, который, тем не менее, был обнаружен в тестируемой базе данных.

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

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

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

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

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

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

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

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

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

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

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

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

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

Управление данных зависимостями

В 2016 году Эдгард Маркс, ученый-компьютерщик из Лейпцигского университета, ввёл термин «Управление зависимостями данных». [30] для обозначения систем, которые занимаются управлением данными. Системы управления зависимостями данных предназначены для облегчения развертывания и управления данными в облаке, на персональных компьютерах или интеллектуальных устройствах (периферийных устройствах). Структуры управления зависимостями данных можно использовать для описания того, как данные были задуманы, лицензирования, а также их зависимостей. Концепция управления зависимостями данных исходит из таких инструментов управления зависимостями программных пакетов, как npm для JavaScript, gem для Ruby и NuGet для .NET. Их смысл заключается в том, чтобы позволить пользователям управлять зависимостью программного обеспечения от данных, например моделей машинного обучения для приложений, управляемых данными. Они полезны для публикации, поиска и установки пакетов данных. Типичным примером фреймворка управления зависимостями данных являются Hugging Face, KBox, [31] среди других.

Влияние [ править ]

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

Существует также конференция для разработчиков менеджеров пакетов, известная как PackagingCon. Он был создан в 2021 году с целью понять различные подходы к управлению пакетами. [33]

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

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

  1. ^ «Что такое менеджер пакетов?» . Архивировано из оригинала 17 октября 2017 года . Проверено 19 декабря 2018 г.
  2. ^ «Распространение программного обеспечения» . Делл КАСЕ. Архивировано из оригинала 3 октября 2015 года . Проверено 11 июля 2012 года .
  3. ^ «История управления пакетами *nix» . 14 августа 2017 г. Архивировано из оригинала 24 октября 2021 г. Проверено 12 октября 2021 г.
  4. ^ «Обзор выпуска InfoMagic за декабрь 1994 г.» . Архивировано из оригинала 29 октября 2021 года . Проверено 12 октября 2021 г.
  5. ^ «Хронология Perl и его культуры» . Архивировано из оригинала 11 января 2013 года . Проверено 29 октября 2021 г.
  6. ^ Людовик Куртес, Управление функциональными пакетами с помощью Guix. Архивировано 15 мая 2020 г. в Wayback Machine , июнь 2013 г., Мадрид, Европейский симпозиум по Lisp 2013.
  7. ^ Такер, Крис (15 марта 2007 г.). «OPIUM: Оптимальный менеджер установки/удаления пакетов» (PDF) . 29-я Международная конференция по программной инженерии (ICSE'07) . Калифорнийский университет в Сан-Диего. п. 1. дои : 10.1109/ICSE.2007.59 . ISBN  978-0-7695-2828-1 . S2CID   1279451 . Архивировано (PDF) из оригинала 14 июня 2011 года . Проверено 14 сентября 2011 г.
  8. ^ «Схемы классификации репозиториев Linux» . www.brainticle.blogspot.com. 13 января 2006 г. Архивировано из оригинала 11 октября 2007 г. Проверено 1 марта 2008 г.
  9. ^ «CentOS yum закрепляет обороты» . centos.org. Архивировано из оригинала 2 ноября 2007 года . Проверено 1 марта 2008 г. {{cite web}}: CS1 maint: неподходящий URL ( ссылка )
  10. Перейти обратно: Перейти обратно: а б «Страница руководства pacman(8)» . Archlinux.org . Архивировано из оригинала 31 августа 2019 года . Проверено 1 марта 2008 г.
  11. ^ «Как сохранить установленными определенные версии пакетов (сложные)» . debian.org. Архивировано из оригинала 14 ноября 2019 года . Проверено 1 марта 2008 г.
  12. ^ «Возможно занесение пакета в черный список» . Архивировано из оригинала 22 июля 2011 года . Проверено 19 августа 2010 г.
  13. ^ "документация/sles11" . ru.opensuse.org . Архивировано из оригинала 1 декабря 2022 года . Проверено 16 августа 2017 г.
  14. ^ «Менеджер пакетов XBPS — Справочник по Void Linux» . docs.voidlinux.org . Архивировано из оригинала 23 января 2023 года . Проверено 19 декабря 2022 г.
  15. ^ «swupd-client/swupd.1.rst на master ·clearlinux/swupd-client ·GitHub» . github.com . Архивировано из оригинала 7 декабря 2022 года . Проверено 22 июня 2022 г.
  16. ^ «Pacman/Rosetta – ArchWiki» . wiki.archlinux.org . Архивировано из оригинала 20 ноября 2016 года . Проверено 17 сентября 2017 г.
  17. ^ «Исходный код dpkg версии 0.93.15» . Архивировано из оригинала 2 апреля 2015 года . Проверено 19 декабря 2018 г.
  18. ^ Элко Долстра, «Интеграция разработки и развертывания программного обеспечения». Архивировано 21 сентября 2019 г. на Wayback Machine .
  19. ^ «Brew — это замена магазина приложений macOS, о которой вы даже не подозревали» . www.msn.com . Проверено 25 мая 2024 г.
  20. Перейти обратно: Перейти обратно: а б Кинг, Бертель (17 марта 2017 г.). «Сравнение магазинов приложений для Linux: какой из них подойдет вам?» . МУО . Проверено 25 мая 2024 г.
  21. ^ «Что такое менеджер пакетов?» . www.debian.org .
  22. ^ Барретт, Брайан. «Как 18 вредоносных приложений проникли в магазин приложений Apple» . Проводной .
  23. ^ Уиттакер, Зак (24 октября 2019 г.). «Миллионы загрузили из Google Play десятки Android-приложений, зараженных рекламным ПО» . ТехКранч .
  24. ^ Ньюман, Лили Хэй. «Никогда (никогда) не загружайте приложения для Android за пределами Google Play» . Проводной .
  25. ^ Оямаа, Андрес; Дууна, Карл (2012). «Оценка безопасности платформы Node.js» . 2012 Международная конференция по интернет-технологиям и защищенным транзакциям . IEEE. ISBN  978-1-4673-5325-0 . Проверено 22 июля 2016 г.
  26. ^ «Кодекс поведения npm: приемлемое содержимое пакета» . Проверено 9 мая 2017 г.
  27. ^ Уотерс, Джон К. (8 сентября 2015 г.). «JFrog выпускает «универсальное» хранилище артефактов» . АДТ Маг . Журнал «Тенденции разработки приложений». Архивировано из оригинала 2 марта 2016 года . Проверено 19 февраля 2016 г.
  28. ^ Декостер, Ксавье (18 августа 2013 г.). «Обзор экосистемы NuGet» . CodeProject.com . Архивировано из оригинала 5 июля 2020 года . Проверено 6 февраля 2020 г.
  29. ^ «Финк – Дом» . finkproject.org . Архивировано из оригинала 18 августа 2021 года . Проверено 2 сентября 2021 г.
  30. ^ «Управление зависимостями данных» . github.com . Проверено 13 июля 2023 г.
  31. ^ «КБокс» . gieexplore.ieee.org : 125–132. Январь 2017 г. doi : 10.1109/ICSC.2017.77 . S2CID   14980310 . Проверено 13 июля 2023 г.
  32. ^ «Как управление пакетами все изменило» . ianmurdock.com. Архивировано из оригинала 23 февраля 2009 года . Проверено 1 марта 2008 г.
  33. ^ «PackagingCon 2021 — конференция для разработчиков и упаковщиков пакетных менеджеров» . сайт упаковки-con.org . Архивировано из оригинала 2 сентября 2021 года . Проверено 2 сентября 2021 г.

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

Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: cdecc02bd5227686e6e11cfecfc3e8f0__1716597840
URL1:https://arc.ask3.ru/arc/aa/cd/f0/cdecc02bd5227686e6e11cfecfc3e8f0.html
Заголовок, (Title) документа по адресу, URL1:
Package manager - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)