wikibackup/Package-management.md

7.1 KiB

title description published date tags editor dateCreated
Package Management true 2024-05-05T15:19:05.888Z markdown 2024-05-05T14:49:35.443Z

Package Management in Parch Linux

Package Manager

The package manager in Parch Linux is called pacman.

Acording to The ArchLinux wiki:

The pacman package manager is one of the major distinguishing features of Arch Linux. It combines a simple binary package format with an easy-to-use build system. The goal of pacman is to make it possible to easily manage packages, whether they are from the official repositories or the user's own builds. Pacman keeps the system up-to-date by synchronizing package lists with the master server. This server/client model also allows the user to download/install packages with a simple command, complete with all required dependencies. Pacman is written in the C programming language and uses the bsdtar(1) tar format for packaging.

How does pacman works?

Here is a small cheatsheet that helps you to use pacman:

Basic operations

Action Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
Search for package(s) pacman -Ss dnf search apt search zypper search or zypper se [-s] emerge --search (-s) or emerge --searchdesc (-S)
Install package(s) by name pacman -S dnf install apt install zypper install or zypper in emerge
Get source package(s) and build dependencies makepkg -s PKGBUILD dnf builddep apt build-dep zypper source-install (zypper si) or zypper install -d emerge, or explicitly emerge --with-bdeps
Print targets without performing the operation pacman --print (or -p) dnf --setopt=tsflags=test apt --simulate (or -s, --dry-run, --just-print) zypper --dry-run emerge --pretend (-p)
Toggle confirmations pacman --confirm or pacman --noconfirm dnf --assumeyes (-y) or dnf --assumeno apt --yes (-y) zypper --non-interactive (-n) or zypper --no-confirm (-y) emerge --ask (-a)
Refresh local package repository pacman -Sy dnf check-update or dnf makecache or dnf upgrade apt update zypper refresh or zypper ref [-s] emerge --sync
Upgrade Packages pacman -Syu dnf upgrade apt upgrade zypper update or zypper up emerge -[a]uDN @world
Upgrade Packages (complex updates) pacman -Syu dnf distro-sync apt dist-upgrade zypper dup emerge -[a]uDN @world
Remove a package(s) and dependencies pacman -Rs dnf remove apt autoremove zypper remove or zypper rm emerge --depclean (-c)
Remove package(s) and configuration files pacman -Rn ? apt purge ? n/a
Remove package(s), dependencies, and config files pacman -Rns ? apt autoremove --purge ? n/a
Remove unneeded dependencies `pacman -Qdtq pacman -Rs - `` (-Qdttq` for optional deps) dnf autoremove apt autoremove zypper rm -u or zypper packages --unneeded
Remove packages not in repositories pacman -Rs $(pacman -Qmq) dnf repoquery --extras aptitude purge '~o' ?
Mark installed package as explicitly required pacman -D --asexplicit dnf mark install apt-mark manual zypper install --force emerge --select (-w)
Install package(s) as dependency pacman -S --asdeps dnf install then dnf mark remove apt-mark auto n/a (workaround) emerge --oneshot (-1)
Only download package(s) pacman -Sw dnf download apt install --download-only or apt download zypper --download-only emerge --fetchonly (-f)
Clean up local caches pacman -Sc or pacman -Scc dnf clean all apt autoclean or apt clean zypper clean eclean distfiles
Start a shell dnf shell zypper shell

Querying specific packages

Action Arch Red Hat/Fedora Debian/Ubuntu SLES/openSUSE Gentoo
Show package information pacman -Si or pacman -Qi dnf list or dnf info apt show or apt-cache policy zypper info or zypper if emerge -S, emerge -pv or eix
Display local package info pacman -Qi rpm -qi / dnf info installed dpkg -s or aptitude show zypper --no-remote info or rpm -qi emerge -pv or emerge -S
Display remote package info pacman -Si dnf info apt-cache show or aptitude show zypper info emerge -pv and emerge -S or equery meta
Display local package files pacman -Ql rpm -ql dpkg -L rpm -ql equery files or qlist
Display remote package files pacman -Fl dnf repoquery -l or repoquery -l apt-file list pfl
Query package providing file pacman -Qo rpm -qf (installed) or dnf provides (everything) or repoquery -f dpkg -S or dlocate rpm -qf (installed) or zypper search -f (everything) equery belongs or qfile
List files in package pacman -Ql or pacman -Fl dnf repoquery -l dpkg-query -L rpm -ql equery files or qlist
Show reverse provides pacman -F dnf provides apt-file search zypper what-provides or zypper wp (exact)

or zypper se --provides (fuzzy) | equery belongs (installed) or pfl | | Search package by file | pacman -F | dnf provides | apt-file search or auto-apt | zypper search -f | equery belongs or qfile | | Show package changelog | pacman -Qc | dnf changelog | apt-get changelog | rpm -q --changelog | equery changes -f |

AUR

The Arch User Repository (AUR) is a community-driven repository for Arch users. It contains package descriptions (PKGBUILDs) that allow you to compile a package from source with makepkg and then install it via pacman. The AUR was created to organize and share new packages from the community and to help expedite popular packages' inclusion into the extra repository. A good number of new packages that enter the official repositories start in the AUR. In the AUR, users are able to contribute their own package builds (PKGBUILD and related files). The AUR community has the ability to vote for packages in the AUR. If a package becomes popular enough — provided it has a compatible license and good packaging technique — it may be entered into the extra repository (directly accessible by pacman or from the Arch build system).

AUR Manager

Parch Linux has Paru as is AUR Manager. using Paru is just like using pacman, with the same syntax you can easly install packages from AUR.

Using Paru

Here are some useful paru commands:

Command Description
paru Update the entire system
paru -Syu Update the entire system
paru -S appname Install the program from AUR
paru appname Install the program from AUR, choosing from the list
paru -Sc Remove Pacman and Paru caches
paru -Ss appname Search for a package