YUM
Installing, patching, and removing software packages on Linux machines is one of the common tasks every sysadmin has to do. Here is how to get started with Linux package management in Linux Red Hat-based distributions (distros). Package management is a method of installing, updating, removing, and keeping track of software updates from specific repositories (repos) in the Linux system. Linux distros often use different package management tools. Red Hat-based distros use RPM (RPM Package Manager) and YUM/DNF (Yellow Dog Updater, Modified/Dandified YUM). YUM is the primary package management tool for installing, updating, removing and managing software packages in Red Hat Enterprise Linux. YUM performs dependency resolution when installing, updating, and removing software packages. YUM can manage packages from installed repositories in the system or from .rpm packages. There are many options and commands available to use with YUM.
Learn more
Nix
Nix is a tool that takes a unique approach to package management and system configuration. Learn how to make reproducible, declarative, and reliable systems. Nix builds packages in isolation from each other. This ensures that they are reproducible and don't have undeclared dependencies, so if a package works on one machine, it will also work on another. Nix makes it trivial to share development and build environments for your projects, regardless of what programming languages and tools you’re using. Nix ensures that installing or upgrading one package cannot break other packages. It allows you to roll back to previous versions and ensures that no package is in an inconsistent state during an upgrade. Nix is a purely functional package manager. This means that it treats packages like values in purely functional programming languages such as Haskell, they are built by functions that don’t have side effects, and they never change after they have been built.
Learn more
MSYS2
MSYS2 is a collection of tools and libraries providing you with an easy-to-use environment for building, installing and running native Windows software. It consists of a command line terminal called mintty, bash, version control systems like git and subversion, tools like tar and awk and even build systems like autotools, all based on a modified version of Cygwin. Despite some of these central parts being based on Cygwin, the main focus of MSYS2 is to provide a build environment for native Windows software and the Cygwin-using parts are kept at a minimum. MSYS2 provides up-to-date native builds for GCC, mingw-w64, CPython, CMake, Meson, OpenSSL, FFmpeg, Rust, Ruby, just to name a few. To provide easy installation of packages and a way to keep them updated it features a package management system called Pacman, which should be familiar to Arch Linux users.
Learn more
fpm
fpm is a tool that lets you easily create packages for Debian, Ubuntu, Fedora, CentOS, RHEL, Arch Linux, FreeBSD, macOS, and more! fpm isn’t a new packaging system, it’s a tool to help you make packages for existing systems with less effort. It does this by offering a command-line interface to allow you to create packages easily. FPM is written in ruby and can be installed using gem. For some package formats (like rpm and snap), you will need certain packages installed to build them. Some package formats require other tools to be installed on your machine to be built; especially if you are building a package for another operating system/distribution. FPM takes your program and builds packages that can be installed easily on various operating systems. It can take any nodejs package, ruby gem, or even a python package and turn it into a deb, rpm, pacman, etc. package.
Learn more