Разница между зависимостями и менеджерами пакетов?

С практической точки зрения, являются ли они по существу синонимами? Или я что-то упускаю? Я использую Composer (PHP), CocoaPods (Objective-C) и Bundler (Rails). Я полагаю, что они называют себя менеджерами зависимостей, но можно ли их также рассматривать как менеджеров пакетов?


person blee908    schedule 05.02.2014    source источник
comment
возможный дубликат диспетчера пакетов и диспетчера зависимостей   -  person bummi    schedule 13.05.2015


Ответы (2)


Я бы сказал да. Учитывая, что сообщество javascript называет свою версию этих инструментов (NPM и Bower) «менеджеры пакетов», я думаю, что сообщество разработчиков, по сути, синонимизировало эти термины.

EDIT Я немного отступлю. В общем, я думаю, что термин package manager связан с доставкой и установкой стороннего кода. Тем не менее, npm правильно называется node package manager. Насколько я понимаю, dependency manager это совсем другое. Это инструмент оркестровки во время выполнения. Например, есть менеджеры зависимостей, которые просто запускаются в браузере для загрузки файлов ресурсов в правильном порядке (например, requireJS, browserify, carter и т. д. — или контейнер внедрения зависимостей, скажем, в Symfony2 или Laravel), но вы бы не стали этого делать. не звоните этим менеджерам пакетов. Менеджер пакетов может быть чем-то вроде dpkg Debian или bower сообщества узлов, который фактически загружает для вас сторонние библиотеки (которых в настоящее время нет в вашем программном пакете). Теперь, я думаю, застрявшие строки появляются, когда менеджеры пакетов решили быть достаточно умными, чтобы разрешить нам номера версий. Поскольку такие инструменты, как npm, гарантируют, что каждая часть программного обеспечения, которую мы объявляем, имеет все правильные версии своих зависимостей (загружая для нас цепочку зависимостей), мы хотим назвать ее диспетчером зависимостей. Но я думаю, что правильнее сказать, что это менеджер пакетов, который выполняет разрешение версий. Однако на самом деле это скорее механизм доставки, чем инструмент времени выполнения.

Все, что сказать, я хотел бы услышать, что другие говорят об этом.

person thataustin    schedule 05.02.2014

Нет, это не синонимы. Посмотрите на этот ответ для их разницы

https://stackoverflow.com/a/27290095/4016254

person Erlan    schedule 04.12.2014