# Package manager

## Summary

Package Managers are used to automate the process of installing, upgrading, configuring, and removing programs. There are multitude of package managers today majorly for *nix based systems. Lately package managers are making their way to Windows systems, and also for installing and managing modules for languages such as Python, Ruby etc.

The general workflow starts with the user requesting the package using the package manager (PM) which would be available in the system. The PM then finds the packages from the repository and downloads it. The PM then installs the packages and advises on any manual steps that it finds necessary.

## Discussion

• Why was the package manager required at the first place?

Unix begun its journey by being a programmer's OS. This means that everytime a new program was written it had to be compiled, linked and run.

Unix got the ability to use libraries (“shared objects”), ELF executables, etc. To solve the task of building more complicated software easily, make was developed. Sourcecode was getting shipped with Makefiles (the file which is used by make) bundled. But still it was a laborious task as the dependencies had to be still taken care by the developer or the maintainer.

Instead of running make commands everytime on every machine having the same configuration, it was thought that we can have a package manager to ship the executable and also the dependencies to other machines. Hence the earliest PMs started evolving with this idea.

• What are the basic functions of the package manager?

The basic functions of the PM are

• Working with file archivers to extract package archives
• Ensuring the integrity and authenticity of the package by verifying their digital certificates and checksums
• Grouping packages by function to reduce user confusion
• Managing dependencies to ensure a package is installed with all packages it requires, thus avoiding "dependency hell"

The packages gets downloaded from Software Repositories or also called as *repo*.

Software repositories are designed to include packages. Repositories may be solely for particular programs, such as Pip for the Python programming language, or for an entire operating system like Ubuntu, Fedora etc. These major repositories are designed to be malware free.

• How would my Package Manager know the location of the repository?

Every Package Manager for OSes would have files related to the configuration for example, sources.list file in ubuntu. These would contain all the locations of repositories.

## Top Contributors

Last update: 2018-04-18 08:17:44 by arvindpdmn
Creation: 2017-03-17 07:11:30 by arvindpdmn

417
Words
1
Chats
2
Authors
5
Edits
1
Likes
321
Hits

## Cite As

Devopedia. 2018. "Package manager." Version 5, April 18. Accessed 2018-04-21. https://devopedia.org/package-manager
BETA V0.14
• Site Map