Linux: Software Configuration and Management
Basics
- Debian-based systems use
apt
- RHEL-based systems use
yum
anddnf
- openSUSE systems use
Zypper
Package Managers
We use package managers to search, install, configure, update, and remove software in Linux environments.
apt
- Debian-based systems
apt update
to update all package listapt upgrade
to update all packagesapt install <PACKAGE>
to install a packageapt remove <PACKAGE>
to remove a packageapt show <PACKAGE>
to show package detailsapt search <PACKAGE>
to search for a packageapt purge <PACKAGE>
to delete a package and associated fileapt list --installed
to show all installed packagesapt clean
to clear cached downloaded packagesapt full-upgrade
to the system distributionapt depends <PACKAGE>
to show package dependenciesapt rdepends <PACKAGE>
to show packages that depend on the selected packageapt-mark hold <PACKAGE>
to lock a package at its current versionapt-mark unhold <PACKAGE>
to unhold a currently held packageapt-mark showhold
to show packages currently on hold
dnf
- REHL-based systems
dnf check-update
to update all package listdnf upgrade
to update all packagesdnf install <PACKAGE>
to install a packagednf remove <PACKAGE>
to remove a packagednf search <PACKAGE>
to search for a packagednf list installed
to view all installed packagesdnf clean all
to clear cached packagesdnf history
to show transaction historydnf repolist
to list enabled repositoriesdnf versionlock list
to list all locked packagesdnf versionlock clear
to clear all locked packagesdnf versionlock add <PACKAGE>
to lock a package at its current versiondnf versionlock delete <PACKAGE>
to delete a "version locked" packagednf config-manager --set-enabled <REPO NAME>
to enable a repositorydnf config-manager --set-disabled <REPO NAME>
to disable a repository
pacman
- Arch-based systems
pacman -Sy
to update all package listpacman -Su
to update all packagespacman -S <PACKAGE>
to install a packagepacman -R <PACKAGE>
to remove a packagepacman -Ss <PACKAGE>
to search for a packagepacman -Qi <PACKAGE>
to view a package detailspacman -Q
to list all installed packagespacman -Sc
to clear cached packages
zypper
- openSUSE-based systems
zypper refresh
orzypper ref
to update all package listzypper upgrade
orzypper up
to update all packageszypper upgrade <PACKAGE
to update a single packagezypper info <PACKAGE
to view package detailszypper install <PACKAGE>
orzypper in <PACKAGE>
to install a packagezypper remove <PACKAGE>
orzypper rm <PACKAGE>
to remove a packagezypper search <PACKAGE>
orzypper se <PACKAGE>
to search for a packagezypper patch-check
to check for important patcheszypper al <PACKAGE>
(add lock) locks a package to prevent it from being updated or removed during system updateszypper rl <PACKAGE>
(remove lock) removes a lockzypper mr -d
(modify repository) to disable a repository
Source Installation
It is a method used to install software when it is not available in repositories or when it requires a custom build.
Installing a software from source usually includes the following steps:
./configure
to configure the systemmake
to build the softwaremake install
to install the newly built softwaremake clean
to remove temporary build files
GNU GPG Signatures
GNU
GNU Not Unix. Used to verify the authenticity of software packages, and files
GPG
GNU Privacy Guard - is used to encrypt and sign data.
GPG usage
gpg --import <KEY FILE>
to import a public key. ex: gpg --import developer_public_key.asc
gpg --verify <SIGNATURE FILE> <PACKAGE>
to verify a signed package. ex: gpg --verify my_program.tar.gz.sig my_program.tar.gz
gpg --list-keys
to list all trusted keys