MAN-J
Man PagesPricing
LoginGet Started
paru(8)
Original
English • 872 lines
PARU(8)				     Paru			       PARU(8)

NAME
       paru - AUR helper and pacman wrapper


SYNOPSIS
       paru <operation> [options] [targets]

       paru <search terms>

       paru


DESCRIPTION
       Paru is an AUR helper written in Rust and based on the design of yay.
       It aims to be your standard pacman wrapping AUR helper with minimal
       interaction.

       Paru is a tool to easily build and install packages from the AUR, along
       with their dependencies. Paru also expands many of pacman's options
       making them AUR aware.

       This manpage only covers options unique to paru. For other options see
       pacman(8).


PARU OPERATIONS
       -P, --show
	      Printing related options.


       -G, --getpkgbuild
	      Downloads PKGBUILDs from the ABS or AUR. The ABS can only be
	      used for Arch Linux repositories.


       -B, --build
	      Build PKGBUILDs on disk. Targets are directories directly
	      containing a PKGBUILD.


       -L, --repoctl
	      List local repos.


       -C, --chrootctl
	      Interactive shell to the chroot.

       If no arguments are provided 'paru -Syu' will be performed.


EXTENDED PACMAN OPERATIONS
       -R, -S, -Si, -Sl, -Ss, -Su, -Sc, -Qu -T
	      These operations are extended to support both AUR and repo
	      packages.


       -R     Paru will also remove cached data about devel packages.


       -Sc    Paru will also clean cached AUR packages and any untracked files
	      in the cache. Cleaning untracked files will wipe any downloaded
	      sources or built packages but will keep already downloaded VCS
	      sources.	-d or --delete can be passed to delete the entire
	      package instead of just cleaning it.


       -Ss    The AUR can be searched using regex but it must be explicitly
	      requested using -x/--regex. Regex search will only search
	      package names and not descriptions regardless of SearchBy.


       -Sss   Paru will also output a verbose search result when passing two


       -S, -Si, -Sl, -Ss, -Su, -Qu
	      Paru will also handle AUR packages for these operations.


       -Ta    Will filter a list of packages to ones that appear in the AUR.


NO OPERATION
       <NO OPTION>
	      Interactive search and install. Displays a list of packages
	      matching the search terms and prompts the user on which packages
	      to install.


       --gendb
	      Generate the development package database. This tracks the
	      latest commit for each development package, so when there is a
	      new commit paru will know to update. This is done per package
	      whenever a package is synced. This option should only be used
	      when migrating to paru from another AUR helper.

	      This also causes paru to assume all current development packages
	      are up to date. Updates will then be detected on the next
	      commit.


       -c, --clean
	      Remove unneeded dependencies.

	      Make and check dependencies are considered for foreign packages.
	      Pass this twice to ignore these. Pass -o to ignore optional
	      dependencies.


SHOW OPTIONS (APPLY TO -P AND --SHOW)
       -c, --complete
	      Print a list of all AUR and repo packages. This allows shell
	      completion and is not intended to be used directly by the user.


       -s, --stats
	      Displays information about installed packages and system health.
	      If there are orphaned, or out-of-date packages, or packages that
	      no longer exist on the AUR; warnings will be displayed.


       -w, --news
	      Print new news from the Arch Linux homepage. News is considered
	      new if it is newer than the build date of all native packages.
	      Pass this twice to show all available news.


       -o, --order
	      Print buildorder for targets.

	      This option outputs information about how to build a package and
	      its dependencies. Each line of output specifies an action to
	      perform or information to take into consideration.

	      Each line of output will be in one of the following formats:

	      MISSING <DEP> [WANTED BY]...
		     A dependency could not be found.

		     <DEP> is the dependency that could not be found and
		     [WANTED BY] is the current dependency stack. The
		     dependency stack will be empty if the package that could
		     not be found was a target.

		     Paru will exit 1 if any packages are missing.

	      CONFLICT LOCAL|INNER <PKG> <CONFLICTING PKG> [CONFLICT]
		     There was a package conflict.

		     The second arg will be LOCAL if the conflict is with an
		     installed package and INNER if two of the to be installed
		     packages conflict. <PKG> and <CONFLICTING PKG> are the
		     packages in conflict and [CONFLICT] will be the conflict
		     string if it is different from <CONFLICTING PKG>.

	      INSTALL TARGET|DEP|MAKE <DB> <NAME>
		     Install a package from the pacman repos.

		     The first arg will be TARGET if the package is a target,
		     DEP if a dependency, or MAKE if the package is a build
		     time dependency. <DB> is the name of the database the
		     package belongs to and <NAME> is the name of the package.

	      AUR TARGET|DEP|MAKE <BASE> <NAMES>...
		     Build a package from the AUR.

		     The first arg will be TARGET if the package is a target,
		     DEP if a dependency, or MAKE if the package is a build
		     time dependency. <BASE> is the pkgbase of the package
		     and <NAMES> are the names of the packages belonging to
		     the pkgbase.

	      More options may be added in the future.


GETPKGBUILD OPTIONS (APPLY TO -G AND --GETPKGBUILD)
       -p, --print
	      Prints the PKGBUILD to the terminal instead of downloading it.


       -c, --comments
	      Print the AUR comments from the PKGBUILD's AUR page.

	      Pass twice to get all comments instead of the first page.


       -s, --ssh
	      Clone the AUR package using SSH (e.g.: a read-write remote).


REPOCTL OPTIONS (APPLY TO -L AND --REPOCTL)
       -l, --list
	      List packages in local repos


       -c, --clean
	      Remove packages that are not currently installed from repos.


       -d, --delete
	      Remove a package from the local repo.  Pass this twice to also
	      uninstall the package.


       -y, --refresh
	      Refresh local repos.


       -q, --quiet
	      Show less information.


CHROOTCTL OPTIONS (APPLY TO -C AND --CHROOTCTL)
       -i, --install
	      Install a package into the chroot.

	      --noconfirm can also be specified and will be forwarded to
	      pacman.


       -u, --sysupgrade
	      Upgrade the chroot.


       -p, --print
	      Print path to currently configured chroot.


BUILD OPTIONS (APPLY TO -B AND --BUILD)
       -i, --install
	      Also install the package once built.


NEW OPTIONS
       --repo Assume all targets are from the repositories. Additionally,
	      actions such as sysupgrade will only act on repository packages.


       -a, --aur
	      Assume all targets are from the AUR. Additionally, actions such
	      as sysupgrade will only act on AUR packages.

	      Note that dependency resolution will still include repository
	      packages.


       --pkgbuilds
	      Assume all targets are from the PKGBUILD repositories.
	      Additionally, actions such as sysupgrade will only act on AUR
	      packages.

	      Note that dependency resolution will still include repositoryi
	      and AUR packages.


       --mode = aur|repo|pkgbuilds
	      Select what kinds of packages paru should act on. Multiple modes
	      can be selected by separating them with a comma.

	      Additionally, a, r and p may be used as short hand for aur, repo
	      and pkgbuilds respectively.  Short form modes can also be
	      combined without a comma.	 E.g. --mode=ar or --mode=arp.



       --interactive
	      Enable interactive package selection for -S, -R, -Ss and -Qs.

	      For -S/-R this allows you to pick which packages to
	      install/remove from a list.

	       paru <foo> is an alias to paru -S --interactive <foo>.

	      For -Ss/-Qs this allows you to interactively pick packages from
	      the sync/local repos respectively.  This is intended to be
	      chained with other package tools so paru can handle the menu
	      work while the other tool in the pipeline just gets the
	      packages.

	      For example:

	       paru -Ssaq --interactive ruby | paru -Gc -

	      will show AUR packages containing the term ruby, give the user
	      an interactive menu to pick packages, then pipeline those
	      packages into -Gc and display the comments.

	      Would allow a user to interactively choose what files to list.


       --aururl
	      Set an alternative AUR URL.


       --aurrpcurl
	      Set an alternative URL for the AUR /rpc endpoint.


       --clonedir <dir>
	      Directory used to download and run PKGBUILDs.


       --makepkg <command>
	      The command to use for makepkg calls. This can be a command in
	      PATH or an absolute path to the file.


       --makepkgconf <file>
	      Specifies a makepkg.conf file to use in the chroot environment.
	      The file can only be an absolute path to the file.


       --pacman <command>
	      The command to use for pacman calls. This can be a command in
	      PATH or an absolute path to the file.


       --pacman-conf <command>
	      The command to use for pacman-conf calls. This can be a command
	      in PATH or an absolute path to the file.


       --git <command>
	      The command to use for git calls. This can be a command in PATH
	      or an absolute path to the file.


       --gitflags <flags>
	      Passes arguments to git. These flags get passed to every
	      instance where git is called by paru. Arguments are split on
	      whitespace before being passed to git. Multiple arguments may be
	      passed by supplying a space separated list that is quoted by the
	      shell.


       --gpg <command>
	      The command to use for gpg calls. This can be a command in PATH
	      or an absolute path to the file.


       --gpgflags <flags>
	      Passes arguments to gpg. These flags get passed to every
	      instance where gpg is called by paru. Arguments are split on
	      whitespace before being passed to gpg. Multiple arguments may be
	      passed by supplying a space separated list that is quoted by the
	      shell.


       --fm <command>
	      This enables fm review mode, where PKGBUILD review is done using
	      the file manager specified by command.

	      This allows the PKGBUILDs and related files to be edited.
	      Changes won't persist unless committed.


       --fmflags <flags>
	      Passes arguments to file manager. These flags get passed to
	      every instance where file manager is called by paru. Arguments
	      are split on whitespace before being passed to the file manager.
	      Multiple arguments may be passed by supplying a space separated
	      list that is quoted by the shell.


       --asp <command>
	      The command to use for asp calls. This can be a command in PATH
	      or an absolute path to the file.


       --mflags <flags>
	      Passes arguments to makepkg. These flags get passed to every
	      instance where makepkg is called by paru. Arguments are split on
	      whitespace before being passed to makepkg. Multiple arguments
	      may be passed by supplying a space separated list that is quoted
	      by the shell.


       --bat <command>
	      The command to use for bat calls. This can be a command in PATH
	      or an absolute path to the file.


       --batflags <flags>
	      Passes arguments to bat. These flags get passed to every
	      instance where bat is called by paru. Arguments are split on
	      whitespace before being passed to bat. Multiple arguments may be
	      passed by supplying a space separated list that is quoted by the
	      shell.


       --sudo <command>
	      The command to use for sudo calls. This can be a command in PATH
	      or an absolute path to the file. The --sudoloop option is not
	      guaranteed to work with a custom sudo command.


       --sudoflags <flags>
	      Passes arguments to sudo. These flags get passed to every
	      instance where sudo is called by paru. Arguments are split on
	      whitespace before being passed to sudo. Multiple arguments may
	      be passed by supplying a space separated list that is quoted by
	      the shell.


       --chrootflags <flags>
	      Passes arguments to makechrootpkg. These flags get passed to
	      every instance where makechrootpkg is called by paru. Arguments
	      are split on whitespace before being passed to makechrootpkg.
	      Multiple arguments may be passed by supplying a space separated
	      list that is quoted by the shell.


       --chrootpkgs <package>
	      Installs package into the chroot before building. Multiple
	      packages can be specified by separating them with a comma.

	      Useful when PKGBUILDs don't declare needed dependencies.

	      Note that this is only a temp fix and only applies to this one
	      build. You should ideally patch the package yourself or report
	      the problem to the maintainer.

	      If you want to permanently add a package to the chroot use paru
	      -Ci package to install packages into the master chroot.


       --completioninterval <days>
	      Time in days to refresh the completion cache. Setting this to 0
	      will cause the cache to be refreshed every time, while setting
	      this to -1 will cause the cache to never be refreshed. Defaults
	      to 7.


       --sortby <votes|popularity|id|baseid|name|base|submitted|modified>
	      Sort AUR results by a specific field during search. Defaults to
	      votes.


       --searchby
       <name|name-desc|maintainer|depends|checkdepends|makedepends|optdepends>
	      Search for AUR packages by querying the specified field.
	      Defaults to name-desc.


       --skipreview
	      Skip the review process.


       --review
	      Don't skip the review process.


       --upgrademenu
	      Show a detailed list of updates in a similar format to pacman's
	      VerbosePkgLists option. (See pacman.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.


       --noupgrademenu
	      Do not show the upgrade menu.


       --removemake [yes|no|ask]
	      Remove makedepends after installing packages. If set to ask, a
	      menu will appear during builds allowing an option to be chosen
	      then. Defaults to yes when specified without an option.


       --noremovemake
	      Don't remove makedepends after installing packages.


       --topdown
	      Print search results from top to bottom. Repo packages will
	      print first. This is the default.


       --bottomup
	      Print search results from bottom to top. AUR packages will print
	      first.


       --limit <limit>
	      Limit the number of packages returned in a search to the given
	      amount. Defaults to 0 (no limit). This applies separately to
	      repo and AUR packages.


       -x, --regex
	      Enable regex for aur search.

	      The regex will only be matched against pkgnames and not pkgdescs
	      as you would usually expect.


       --nocheck
	      Don't resolve checkdepends or run the check function.


       --installdebug
	      Also install debug packages when a package provides them.


       --noinstalldebug
	      Don't 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 using git 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.

	      The slower pacaur-like devel checks can be implemented manually
	      by piping a list of packages into paru (see examples).


       --ignoredevel
	      Like --ignore but for devel upgrades. Packages matching this
	      will not be tried for a devel update but may still be upgraded
	      if the pkgver changes.


       --nodevel
	      Do not check for development packages updates during sysupgrade.


       --develsuffixes
	      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 --needed option is set.


       --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.


       --nocleanafter
	      Do not remove package sources after successful install.


       --redownload [yes|no|all]
	      Always download PKGBUILDs of targets even when a copy is
	      available in cache. If all is specified, then PKGBUILDs will be
	      downloaded for all packages, not just targets. Defaults to yes
	      when specified.


       --noredownload
	      When downloading PKGBUILDs, if the PKGBUILD is found in cache
	      and is equal or newer than the AUR's version use that instead of
	      downloading a new one.


       --provides
	      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.  Specifying all will enable this for all
	      packages.


       --noprovides
	      Do not look for matching providers when searching for AUR
	      packages. Paru will never show its provider menu but pacman will
	      still show its provider menu for repo packages.


       --pgpfetch
	      Prompt to import unknown PGP keys from the validpgpkeys field of
	      each PKGBUILD.


       --nopgpfetch
	      Do not prompt to import unknown PGP keys. This is likely to
	      cause a build failure unless using options such as
	      --skippgpcheck or a customized gpg config.



       --newsonupgrade
	      Print new news during sysupgrade.


       --useask
	      Use pacman's --ask flag 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.


       --nouseask
	      Manually resolve package conflicts during the install. Packages
	      which do not conflict will not need to be confined manually.


       --savechanges
	      Commit changes to pkgbuilds made during review.


       --nosavechanges
	      Don't 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.


       --nofailfast
	      Don't exit as soon as any AUR packages fail to build.


       --keepsrc
	      Keep src/ and pkg/ directories after building packages.


       --nokeepsrc
	      Don't keep src/ and pkg/ directories after building packages.


       --combinedupgrade
	      During sysupgrade, paru will first perform a refresh, then show
	      its combined menu of repo and AUR packages that will be
	      upgraded. Then 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.


       --nocombinedupgrade
	      During sysupgrade, pacman -Syu will be called, then the AUR
	      upgrade will start. This means the upgrade menu and PKGBUILD
	      review will be performed after the sysupgrade has finished.


       --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.


       --nobatchinstall
	      Always install AUR packages immediately after building them.


       --rebuild [yes|no|all|tree]
	      Always build target packages even when a copy is available in
	      cache. If all is selected then all packages are rebuilt, not
	      only targets. If tree is selected then the whole dependency tree
	      is rebuilt, including already satisfied dependencies.  Defaults
	      to no.


       --norebuild
	      When building packages if the package is found in cache and is
	      an equal version to the one wanted skip the package build and
	      use the existing package.


       --sudoloop [= args...]
	      Periodically call sudo in the background to prevent it from
	      timing out during long builds.

	      Optionally args can be passed to choose how to loop the command.
	      This may be useful for doas where looping is done differently.


       --nosudoloop
	      Do not loop sudo calls in the background.


       --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 in
	      pacman.conf but 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.


       --nolocalrepo
	      Do not build into a local repo.


       --chroot [= /path/to/chroot]
	      Build packages in a chroot. This requires the LocalRepo option
	      to be enabled.  Optionally a directory may be passed to specify
	      where to create the chroot.


       --nochroot
	      Don't build packages in a chroot.


       --sign [= key]
	      Sign packages with gpg. Optionally indicate which key to sign
	      with.


       --nosign
	      Don't sign package with gpg.


       --keeprepocache
	      Normally upon AUR packages getting updated the old versions will
	      be removed from the local repo.  This option disables that
	      behavior, keeping the both all versions and only updating the
	      DB.


       --nokeeprepocache
	      Don't keep old packages.


       --signdb [= key]
	      Sign databases with gpg. Optionally indicate which key to sign
	      with.


       --nosigndb
	      Don't sign databases with gpg.


EXAMPLES
       paru foo
	      Search and install from the repos and the AUR using interactive
	      search and install.


       paru -Syu
	      Update package list and upgrade all currently installed repo and
	      AUR packages.


       paru -Sua
	      Update all currently installed AUR packages.


       paru -S foo
	      Installs package foo from the repos or the AUR.


       paru -Ss foo
	      Searches for package foo on the repos or the AUR.


       paru -Si foo
	      Gets information about package foo from the repos or the AUR.


       paru -S foo --mflags "--skipchecksums --skippgpcheck"
	      Installs foo while skipping checksums and PGP checks.


       paru -B .
	      Build PKGBUILD in current directory.


       pacman -Qmq | grep -Ee '-(cvs|svn|git|hg|bzr|darcs)$' | paru -Ta - |
       paru -S --needed -
	      pacaur-like devel check.


ENVIRONMENT VARIABLES
       AURDEST
	      Can be set to configure the build directory.

	      Overridden by --clonedir.


       PARU_CONF
	      Overrides where paru will look for its config file.


       PARU_PAGER
	      The pager paru will use for file review. Has higher priority
	      than PAGER but lower priority than paru.conf.


FILES
       CONFIG DIRECTORY
	      The config directory is $XDG_CONFIG_HOME/paru/. If
	      $XDG_CONFIG_HOME is unset, the config directory will fall back
	      to $HOME/.config/paru.

	      paru.conf is used to store all of paru's config options. See
	      paru.conf(5) for more about this file.


       CACHE DIRECTORY
	      The cache directory is $XDG_CACHE_HOME/paru/. If $XDG_CACHE_HOME
	      is unset, the cache directory will fall back to
	      $HOME/.cache/paru.

	      packages.aur holds a list of of all AUR packages for shell
	      completion. By default the completion files are refreshed every
	      7 days.


       STATE DIRECTORY
	      The state directory is $XDG_STATE_HOME/paru/. If $XDG_STATE_HOME
	      is unset, the state directory will fall back to
	      $HOME/.local/state/paru.

	      devel.json tracks VCS packages and the latest commit of each
	      source. If any of these commits change the package will be
	      upgraded during a devel update.


       BUILD DIRECTORY
	      Unless otherwise set this should be the same as CACHE DIRECTORY.
	      This directory is used to store downloaded AUR Packages as well
	      as any source files and built packages from those packages.


       PACMAN.CONF
	      Paru uses pacman's config file to set certain pacman options
	      either through alpm.rs or paru itself. Options inherited include
	      most libalpm options and pacman options.

	      Notably: Databases, Color and *Path/*Dir options are used.


SEE ALSO
       paru.conf(5), makepkg(8), makepkg.conf(5), PKGBUILD(5), pacman(8),
       pacman.conf(5)

       See the arch wiki at
       https://wiki.archlinux.org/index.php/Arch_User_Repository for more info
       on the AUR.


BUGS
       Please report bugs to our GitHub page
       https://github.com/Morganamilo/paru.


AUTHORS
       Morgan <morganamilo@archlinux.org>

paru v1.10.0			  2021-03-24			       PARU(8)

paru(8)

paru \- AUR helper and pacman wrapper

0popularity

System Information

paru v1.10.0 1.0.0
Updated 2021\-03\-24
Maintained by Unknown

Actions