Ever Since Mankind started to program things, they started distributing them to various firms, individuals, etc. One had to install software on its own using the README file which is tedious and time-consuming work. There comes the need of using the package managers. Package managers speed the development process and make things easier for the developers. You don’t need to write everything from scratch in your application.
To read more about how packages were installed early go to – The Evolution of Package Managers
The Need For Package Managers
As told earlier, software or package installing was complex work and it was taking a lot of time.
Need is the Mother of Invention
To save this precious time of installing different software and their dependencies, package managers were introduced.
It was the year 1993 when Package Managers started ruling the tech industry. Many Linux Distros started taking the advantage of package managers like Debian started to use dkpg, which is still used today, RedHat started rpm, and many more examples are there.
Package Managers helps in the installation of different software without worrying about dependencies and versions. They are updated frequently and packages run through some tests to check security and other things.
What is a Package?
A Package contains multiple files and is compressed together into a single file. It contains a MakeFile — to compile files & other required language files. A package is hosted in a Software Repository which can be downloaded from the command line. Whenever we download a package it automatically runs the MakeFile and then it runs the compiled binary.
What is the Software Repository?
Software Repository is a Server where all the packages are stored and downloaded from. Fedora has RPM, Ubuntu uses APT, etc. Every Software Repository has its own Package Managers.
The Growing List of Package Managers
Nowadays not only Linux Distros uses Package Managers but also programming Languages use them to keep track of different packages, modules, etc. Windows and Mac also have some cool Package Managers.
As there is an increase in the number of Linux Distros, Programming Languages, Windows Users there is an increase in package managers and number of users.
For Example:
- Python uses its own PyPi Package Manager
- Node JS uses NPM
- Windows uses Chocolatey
- MacOS uses HomeBrew
- Fedora has DNF
Every OS or Linux Distro in this World has a Package Manager of itself. Packages are stored on a cloud server and every package manager has its own server.
How Does the Package Manager Work?
Package Managers mostly come with a command-line interface. Various package managers have their own set of commands to download the required package.
For Example:
Debian Based Package Managers
sudo apt-add-repository "deb http://APT.spideroak.com/ubuntu-spideroak-hardy/ release restricted" sudo apt-add-repository ppa:gnome-desktop
Chocolatey Package Manager
choco install python
PyPi Package Manager
pip install numpy
Node Package Manager (NPM)
npm install -g npm
Whenever we type these commands, the package manager sends the request to the software repository, downloads the required packages, and installs it.