# Understanding package manager and systemctl

### What is a package manager in Linux?

In simpler words, a package manager is a tool that allows users to install, remove, upgrade, configure and manage software packages on an operating system. The package manager can be a graphical application like a software center or a command lines tool like apt-get or pacman.

You’ll often find me using the term ‘package’ in tutorials and articles, To understand package manager, you must understand what a package is.

### What is a package?

A package is usually referred to as an application but it could be a GUI application, command line tool or a software library (required by other software programs). A package is essentially an archive file containing the binary executable, configuration file and sometimes information about the dependencies.

### Different kinds of package managers

Package Managers differ based on the packaging system but the same packaging system may have more than one package manager.

For example, RPM has Yum and DNF, package managers. For DEB, you have apt-get, aptitude command line-based package managers.

### *Tasks*

**You have to install docker in your system from your terminal using package managers**

1) Update the apt package index and install packages to allow apt to use a repository over HTTPS:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680793703018/7867d322-4254-4309-9ebd-d226ee119957.png align="center")

2) Add Docker’s official GPG key:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680793738898/22172bc5-d1d0-4919-87b6-29d4c0c9017d.png align="center")

3) Use the following command to set up the repository:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680793790068/56ca29c7-5265-4e7a-bfd1-0377c87c8ce5.png align="center")

4) Update the apt package index:

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680793818893/a464b1f3-99b2-49c8-a5ac-56990a4f4e81.png align="center")

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680793872551/64ec7b99-9f11-4b06-bf8d-a73ddbd26b05.png align="center")

5) Install Docker Engine, containerd, and Docker Compose.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680793951264/6c80d366-c17c-422b-ba5b-2b1aa05164e5.png align="center")

6) Check if docker is installed properly

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680793983221/ada20880-6f00-4888-b488-b8633cb19ff3.png align="center")

**You have to install jenkins in your system from your terminal using package managers**

1) Install Java

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680794615893/5193a850-7810-4586-b3a1-e560ae57fca4.png align="center")

2) Check if Java is installed

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680794684111/bc41a502-7303-4462-8937-95b2e8e661b8.png align="center")

3) Add the framework repository key

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680794811139/958044e8-1138-488c-8c79-6bfc3c0455fb.png align="center")

4) Install Jenkins

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1680794937085/ce5599d7-1cf0-43ec-8bc3-32c1d42cd77f.png align="center")

### **systemctl and systemd**

systemctl is used to examine and control the state of “systemd” system and service manager. systemd is a system and service manager for Unix-like operating systems(most of the distributions, not all).

Thank you for reading.

Bikram Chatterjee
