PARU.CONF(5)
π¦ NAME π¦
This is paru.conf(5), straight from the Paru Manual π«Ά β aka paru.conf, the paru configuration file. She's literally the blueprint for how paru behaves, bestie. π
πΈ SYNOPSIS πΈ
Paru checks these spots, in this exact read order:
$PARU_CONF, $XDG_CONFIG_HOME/paru/paru.conf,
$HOME/.config/paru/paru.conf, /etc/paru.conf
π DESCRIPTION π
Okay so real talk: paru.conf is paru's config file. The format is based on pacman.conf(5) β yep, the same kind of layout, so if you've edited pacman's config before you're already lowkey fluent. β¨
Paru starts by trying $PARU_CONF. If that variable is unset, she goes for $XDG_CONFIG_HOME/paru/paru.conf. If $XDG_CONFIG_HOME is unset β or that file just isn't there β she moves on to $HOME/.config/paru/paru.conf. And if even that file doesn't exist, she reads the system config from /etc/paru.conf. That's the whole search order, no cap.
Also, the Include directive exists, and it lets you copy paste files into the config. π«Ά A very valid move: extend the system config by including it in your user's config, then defining options. iykyk.
π OPTIONS π
These live in the [options] section. Every single option is below β no skipping, no summarizing, periodt. π
BottomUpβ Print search results from bottom to top. AUR results will be printed first. π«ΆAurOnlyβ Assume all targets are from the AUR. Also, actions such as sysupgrade will only act on AUR packages. Note that dependency resolving will still act normally and include repository packages. β¨PkgbuildsOnlyβ Assume all targets are from PKGBUILD repositories. Also, actions such as sysupgrade will only act on PKGBUILD repository packages. Note that dependency resolving will still act normally and include repository and AUR packages. π¦RepoOnlyβ Assume all targets are from the repositories. Also, actions such as sysupgrade will only act on repository packages. πMode = aur|repo|pkgbuildsβ Select what kinds of packages paru should act on. You can select multiple modes by separating them with a comma. Also,a,r, andpmay be used as shorthand foraur,repo, andpkgbuildsrespectively. Short form modes can also be combined without a comma. E.g.Mode = arorMode = arp. π₯SudoLoop [= args...]β Periodically callsudoin the background so it doesn't time out during long builds. Optionally,argscan be passed to choose how to loop the command. This may be useful fordoas, where looping is done differently. πNoCheckβ Don't resolve checkdepends or run the check function. πInstallDebugβ Also install debug packages when a package provides them. πβ¨Develβ During sysupgrade, also check AUR development packages for updates. Currently only Git packages are supported. Devel checking is done usinggit ls-remote: the newest commit hash is compared against the hash at install time. This allows devel updates to be checked almost instantly and not require the original PKGBUILD to be downloaded. π₯IgnoreDevelβ LikeIgnorePkgbut for devel upgrades. Packages matching this will not be tried for a devel update, but may still be upgraded if the pkgver changes. πIgnoreDevelSourceβ LikeIgnoreDevelbut targets urls in thesource=()array of pkgbuilds. This can be useful if a package has a properly working main git source but also has an unversioned secondary source that doesn't effect the pkgver. π§CleanAfterβ Remove untracked files after installation. Untracked files are removed with the exception of directories. This allows VCS packages to easily pull an update instead of having to reclone the entire repo. π§Ήβ¨Provides [= all]β Look for matching providers when searching for AUR packages. When multiple providers are found, a menu will appear prompting you to pick one. This increases dependency resolve time, although this should not be noticeable. By default, only targets and missing packages will be searched for providers. Specifyingallwill enable this for all packages. πPgpFetchβ Prompt to import unknown PGP keys from thevalidpgpkeysfield of each PKGBUILD. πCombinedUpgradeβ During sysupgrade, paru will first perform a refresh, then show its combined menu of repo and AUR packages that will be upgraded. After reviewing the PKGBUILDs, the repo and AUR upgrade will start with no need for manual intervention. If paru exits for any reason after the refresh without upgrading, it will be the user's responsibility to either resolve the reason paru exited or run a sysupgrade through pacman directly. πBatchInstallβ When building and installing AUR packages, instead of installing each package after building, queue each package for install. Then, once either all packages are built or a package in the build queue is needed as a dependency to build another package, install all the packages in the install queue. π¦πNewsOnUpgradeβ Print new news during sysupgrade. π°UseAskβ Use pacman's--askflag to automatically confirm package conflicts. Paru lists conflicts ahead of time. It is possible that paru does not detect a conflict, causing a package to be removed without the user's confirmation. However, this is very unlikely. β οΈSaveChangesβ Commit changes to pkgbuilds made during review. πΎFailFastβ Exit as soon as any AUR packages fail to build. By default, Paru will continue and try to build other AUR packages. πKeepSrcβ Keepsrc/andpkg/directories after building packages. πRedownload [= all]β Always download PKGBUILDs of targets even when a copy is available in cache. If set toall, then this applies to all packages, not only targets. πRebuild [= all, tree]β Always build target packages even when a copy is available in cache. If set toall, then all packages are rebuilt, not only targets. If set totree, the whole dependency tree is rebuilt, including already satisfied dependencies. π³RemoveMake [= ask]β Remove makedepends after installing packages. If set toask, a menu will appear during builds allowing an option to be chosen then. π§½UpgradeMenuβ Show a detailed list of updates in a similar format to pacman'sVerbosePkgListsoption. (Seepacman.conf(5).) Upgrades can be skipped using numbers, number ranges, or repo names. Warning: it is not recommended to skip updates from the repositories as this can lead to partial upgrades. This feature is intended to easily skip AUR updates on the fly that may be broken or have a long compile time. Ultimately it is up to the user what upgrades they skip. πAurUrl = URLβ Set an alternative AUR URL. πAurRpcUrl = URLβ Set an alternative URL for the AUR/rpcendpoint. π°οΈCloneDir = /path/to/dirβ Directory used to download and run PKGBUILDs. πSortBy = <votes|popularity|name|base|submitted|modified|id|baseid>β Defaults tovotes. Sort AUR results according to the options in "Sort by" visible here:https://aur.archlinux.org/packages/. π³οΈSearchBy = <name|name-desc|maintainer|depends|checkdepends|makedepends|optdepends>β Defaults toname-desc. Search AUR packages according to the options in "Search by" visible here:https://aur.archlinux.org/packages/. πLimit = Nβ Limit the number of packages returned in a search to the given amount. Defaults to0(no limit). This applies separately to repo and AUR packages. π’CompletionInterval = Nβ Time in days to refresh the completion cache. Setting this to0will cause the cache to be refreshed every time, while setting this to-1will cause the cache to never be refreshed. Defaults to7. ποΈPacmanConf = path/to/pacman.confβ The pacman config file to use. π§MakepkgConf = path/to/makepkg.confβ The makepkg config file to use. π οΈDevelSuffixes = Suffixes...β Suffixes that paru will use to decide if a package is a devel package. Used when determining if a pkgver bump is used when the--neededoption is set. π§¬NoWarn = Packages...β Don't warn when these packages are not in the aur, out of date, or orphaned. π€«LocalRepo [= Repos...]β Use a local repo to build and upgrade AUR packages. Paru will act on packages in the enabled repos instead of foreign packages. The repo must already be declared inpacman.confbut does not have to already exist on disk. Optionally, a list of repos to use can be passed. By default, paru will consider all local repos, building new packages into the first listed repo and upgrading the packages in other enabled repos. π β¨Chroot [= path/to/chroot]β Build packages in a chroot. This requires theLocalRepooption to be enabled. Optionally, a directory may be passed to specify where to create the chroot. π°Sign [= key]β Sign packages with gpg. Optionally indicate which key to sign with. βοΈSignDb [= key]β Sign databases with gpg. Optionally indicate which key to sign with. ποΈKeepRepoCacheβ Normally, upon AUR packages getting updated, the old versions will be removed from the local repo. This option disables that behavior, keeping all the versions around and only updating the DB. ποΈSkipReviewβ Skip the review process. πββοΈπ¨
π BIN
okay so these are all the options that live in the [bin] section β it's basically the "which actual program do I call" zone, plus a bunch of flag-passing goodies β¨
Makepkg = path/to/makepkgβ the command paru uses formakepkgcalls. can be a command sitting inPATHor an absolute path to the file, whatever vibes πPacman = path/to/pacmanβ the command forpacmancalls. again:PATHcommand or absolute path, ur call bestie.PacmanConf = path/to/pacman-confβ the command forpacman-confcalls. yep, same deal βPATHor absolute path πGit = path/to/gitβ the command forgitcalls.PATHor absolute path, no cap.Asp = path/to/aspβ the command foraspcalls.PATHor absolute path, mwah πBat = path/to/batβ the command forbatcalls.PATHor absolute path, obviously π¦Sudo = path/to/sudoβ the command forsudocalls.PATHor absolute path. β οΈ lowkey important: theSudoLoopoption is not guaranteed to work with a custom sudo command, so likeβ¦ be aware bestie πFileManager = path/to/fmβ this one turns on fm review mode, where PKGBUILD review happens using the file manager you point at. it lets you edit PKGBUILDs and related files π«Ά but heads up: changes won't persist unless they're committed. periodt.MFlags = Flags...β passes arguments tomakepkg. these flags go to every single place paru callsmakepkg. arguments get split on whitespace before being passed πΈGitFlags = Flags...β passes arguments togit, every time paru callsgit. split on whitespace before being passed β¨GpgFlags = Flags...β passes arguments togpg, every time paru callsgpg. split on whitespace before being passed πBatFlags = Flags...β passes arguments tobat, every time paru callsbat. split on whitespace before being passed πSudoFlags = Flags...β passes arguments tosudo, every time paru callssudo. split on whitespace before being passed π₯FileManagerFlags = Flags...β passes arguments to the file manager, every time paru calls the file manager. split on whitespace before being passed π§ChrootFlags = Flags...β passes arguments tomakechrootpkg, every time paru callsmakechrootpkg. split on whitespace before being passed π«RootChrootPkgs = Packages...β space-separated list of packages to install when creating the root chroot π- Defaults to
"base-devel"if you don't specify anything. - unlike
--chrootpkgs(which installs packages temporarily before each build),--rootchrootpkgspackages become part of the root chroot and persist across all builds. - β οΈ this only affects chroot creation. to actually apply changes to an existing chroot, you gotta delete it and recreate it. no shortcuts, bestie π
- Defaults to
Pager = Commandβ the command to use for paging πPreBuildCommand = Commandβ a command that gets executed for each package before it's built. it runs viash -c, and its current directory is set to the directory containing that package's PKGBUILD. if a package is already built, the build gets skipped β but this command still runs for that package. the variablesPKGBASEandVERSIONare set for the command to use π
π ENV
this section is literally just for setting environment variables. so chill.
Key = Valueβ sets the environment variableKeytoValue. that's it, that's the whole vibe β¨
π PKGBUILD REPOSITORY SECTION
okay this part is lowkey iconic β you can define PKGBUILD repositories by adding a [reponame] section, where reponame is the name of the repository you wanna add π
a PKGBUILD repository acts very much like the AUR when it comes to installing and upgrading packages. and packages in PKGBUILD repositories also take priority over the AUR, so you can use them to mask packages π
the layout is simple: it's just a directory containing PKGBUILDs. paru will recursively scan a repository for PKGBUILDs, up to 3 levels by default π¦
paru refreshes PKGBUILD repositories whenever it refreshes repository databases. and if you wanna refresh just the PKGBUILD repositories, you can do that with paru -Sya π
Url = https://path/to/repoβ the git URL to the PKGBUILD repository. file paths may be used to point to git repos on disk πΈ- if
Pathis specified alongsideUrl, that specified path gets treated as a subdirectory of the repository, and paru will only search for pkgbuilds in that subdirectory π
- if
Path = /path/to/repoβ can be used as an alternative toURLto point to a PKGBUILD repository on disk. unlike using a URL path, changes to this directory are propagated to paru immediately and not onparu -Sya. also there's no review step for this kind of repository π«ΆDepth = Nβ the search depth for PKGBUILD scanning πSkipReviewβ skips review for this repository. bye bye review step π¨GenerateSrcinfoβ forces regeneration of the.SRCINFOfile even if it already exists on disk. super useful for repositories that forget to update their.SRCINFOfiles ππ
and that's the whole page bestie!! π this was paru v1.10.0, dated 2021-03-24, from the PARU.CONF(5) manual β go forth and configure your heart out, you absolute icon ππβ¨
π¦ where this page comes from
- nixpkgs unstable: paru 2.1.0-unstable-2026-01-09
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms