yay and paru compared
yay and paru do the same job: they search the AUR and the repositories together, fetch the build files, run the build and hand the result to pacman. Choosing between them is a smaller decision than it is usually made out to be.
makepkg -si
What it does. Build and install one package from a cloned AUR directory, which is what both helpers automate and the only way that needs no helper at all.
Watch out. A helper is a third program between you and pacman. Whatever it installs arrives through pacman in the end, and pacman is what keeps the record.
What is the same
| Point | yay | paru |
|---|---|---|
| Command shape | pacman-style operation letters, with AUR searching folded in | pacman-style operation letters, with AUR searching folded in |
| What installs the package in the end | pacman | pacman |
| Where it gets build files from | The AUR | The AUR |
| How it is itself installed | From the AUR, manually the first time | From the AUR, manually the first time |
| Whether it can review a PKGBUILD before building | Yes, as part of the build flow | Yes, as part of the build flow |
| Where the authority on its options is | Its own --help and manual page | Its own --help and manual page |
The shared row that matters most is the second one. Neither helper is a
package manager: both end by calling pacman with a built file, which is why the
query commands see AUR packages exactly as they
see repository ones, and why pacman -Qm is what tells the two groups apart.
pacman -QmLists the installed packages that no repository carries, which on most machines means the ones a helper built.
What differs
| Point | yay | paru |
|---|---|---|
| Implementation language | Go | Rust |
| Relationship | The older of the two; paru was written after it and borrows its command shape | Written later, with yay's interface as the starting point |
| Configuration | Its own configuration file | Its own configuration file, in a different format |
| Review step | Shows the build files as part of the flow | Shows the build files as part of the flow, with the differences from the previous build available |
A comparison written anywhere can go out of date between one release and the next. The two things worth checking against the programs themselves are the options they take and the defaults they ship with, and both answer --help.
What using either one costs
An AUR package is a build recipe somebody uploaded. The helper makes running that recipe convenient, and convenience is the whole risk: a review step that is skipped every time is the same as not having one.
- The recipe runs on your machine with your privileges during the build.
- A helper that upgrades AUR packages alongside repository ones invites the combined upgrade to be answered with the same reflex as an ordinary one.
- Whatever the helper builds becomes a package pacman records, so a bad build is removed the ordinary way with the removal commands.
Doing it without either
Both helpers automate a sequence that is short enough to run directly, and running it once is the best way to understand what they are doing on your behalf:
git clone <aur-repository>makepkg -siBuilds in the current directory and hands the result to pacman to install. It is not a pacman command, so no level is given for it.
The AUR and makepkg page covers that sequence in full, and the yay page covers how a helper's letters line up with pacman's.
Common questions
What is the difference between yay and paru?
They do the same job with the same command shape. yay is written in Go and came first; paru is written in Rust and started from yay's interface. Both end by handing a built package to pacman.
Is paru a replacement for pacman?
No, and neither is yay. Both fetch build files from the AUR, run the build and then call pacman to install the result, so pacman remains the thing that records what is on the machine.
Can I have both yay and paru installed?
Yes. They are ordinary packages that call pacman, so nothing stops both being present. What they cannot do is run at the same moment, because each takes the same database lock pacman takes.
How do I see which packages came from the AUR?
Run pacman -Qm. It lists installed packages that no configured repository carries, which on most machines is the set a helper built.