CLI Package Managers


Command-Line Interface (CLI) package managers are essential tools for managing software packages and dependencies on various operating systems. They simplify the installation, update, and removal of software packages.

Here are some commonly used CLI package managers for different operating systems:

Linux:

  1. APT (Advanced Package Tool): APT is used in Debian-based Linux distributions like Debian, Ubuntu, and Linux Mint.
    • apt-get: Install, update, or remove packages.
    • apt-cache: Query package information.
  2. YUM (Yellowdog Updater Modified): YUM is used in Red Hat-based Linux distributions like CentOS and Fedora.
    • yum install: Install packages.
    • yum update: Update packages.
    • yum remove: Remove packages.
  3. dnf (Dandified YUM): DNF is a modern package manager used in Fedora and other Red Hat-based distributions.
    • dnf install: Install packages.
    • dnf update: Update packages.
    • dnf remove: Remove packages.
  4. Pacman: Pacman is used in Arch Linux and its derivatives.
    • pacman -S: Install packages.
    • pacman -Syu: Update the package database and upgrade installed packages.
    • pacman -R: Remove packages.

macOS:

  1. Homebrew: Homebrew is a popular package manager for macOS.
    • brew install: Install packages.
    • brew upgrade: Upgrade installed packages.
    • brew uninstall: Uninstall packages.

Windows:

  1. Chocolatey: Chocolatey is a package manager for Windows.
    • choco install: Install packages.
    • choco upgrade: Upgrade installed packages.
    • choco uninstall: Uninstall packages.

Node.js (JavaScript/Node.js):

  1. npm (Node Package Manager): npm is used for managing JavaScript packages and is included with Node.js.
    • npm install: Install packages.
    • npm update: Update packages.
    • npm uninstall: Uninstall packages.

Python:

  1. pip (Python Package Installer): pip is the package manager for Python.
    • pip install: Install packages.
    • pip install --upgrade: Upgrade packages.
    • pip uninstall: Uninstall packages.

Ruby:

  1. gem: RubyGems is the package manager for Ruby.
    • gem install: Install gems.
    • gem update: Update gems.
    • gem uninstall: Uninstall gems.

General Package Managers (Cross-Platform):

  1. Snap: Snap is a universal package manager available on various Linux distributions. It can install and manage software packages in a sandboxed environment.
    • snap install: Install snaps.
    • snap refresh: Update installed snaps.
    • snap remove: Remove snaps.
  2. Flatpak: Flatpak is another universal package manager for Linux distributions. It provides a containerized environment for applications.
    • flatpak install: Install Flatpak apps.
    • flatpak update: Update Flatpak apps.
    • flatpak uninstall: Uninstall Flatpak apps.

These CLI package managers make it easier to maintain software installations, keep packages up to date, and manage dependencies. They are essential tools for software developers, system administrators, and users who want to efficiently manage software on their systems.


Key terms in plain language

Open a term for a concise explanation of language used on this page.

Cloud Computing

Computing resources—such as applications, servers, storage, or databases—delivered from remote infrastructure and scaled as requirements change.

Infrastructure as a Service (IaaS)

Cloud-based servers, storage, and networking that customers configure and manage without owning the underlying data-center hardware.

Software as a Service (SaaS)

Software accessed as an online service instead of being installed and maintained entirely on the customer’s own computers or servers.

Disaster Recovery (DRaaS)

A plan and service for restoring applications, data, and operations after an outage or disruption. DRaaS provides recovery infrastructure through a managed cloud service.

Identity and Access Management (IAM)

The systems and policies that determine who a user is, what resources they may access, and how that access is authenticated and reviewed.

API

An application programming interface is a defined way for software systems to exchange data or request functions from one another.