Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Package Manager vs Dependency Manager

What are the differences?

In many places they used interchangeably as synonyms but I think they are different. What is the key difference in short?

like image 433
Erlan Avatar asked Dec 04 '14 03:12

Erlan


People also ask

What is a dependency package manager?

A dependency manager operates at source code level. It's role is to setup the right dependencies for a particular application. It therefore implies that a dependency manager is something used by developers, not users or system admin. Thus, a dependency manager is project specific.

What is package and dependency?

Package dependencies and incompatibilities can be defined with two of the optional package information files, compver and depend . Delivering a compver file lets you name previous versions of your package that are compatible with the one being installed.

Is pip a dependency management tool?

Pip comes with Python versions later than 2.7. 9, and is the default go-to packaging tool. However, its dependency management capabilities are pretty basic, and its speed is considered slow. By default, Pip installs everything globally.

Is pip a good package manager?

pip is the de facto package manager in the Python world. It can install packages from many sources, but PyPI is the primary package source where it's used. When installing packages, pip will first resolve the dependencies, check if they are already installed on the system, and, if not, install them.


1 Answers

TLTR: Package Manager is used for SYSTEM and Dependency Manager for PROJECT


Package Manager - is used to configure system, ie to setup your development environment and with these settings you can build many projects.

Dependency Manager - Is specific to project. You manage all dependencies for a single project and those dependencies are going to be saved on your project. When you start another project you should manage your dependencies again.


EXAMPLE: In PHP world there is COMPOSER as dependency manager and PEAR as package manager. When using composer all your settings and extensions are for single project where pear settings to setup new extension and library to php core.

like image 95
Erlan Avatar answered Sep 18 '22 15:09

Erlan