Difference between revisions of "Pacaur"

From ArchWiki
Jump to: navigation, search
(AUR4 update)
m (update for pacaur 4.3.x)
Line 29: Line 29:
  
 
<pre>
 
<pre>
usage:  pacaur <operation> [options] [target(s)]
+
usage:  pacaur <operation> [options] [target(s)] -- See also pacaur(8)
 
operations:
 
operations:
 
  pacman extension
 
  pacman extension
 
   -S, -Q          extend pacman operations to the AUR
 
   -S, -Q          extend pacman operations to the AUR
  AUR only
+
  AUR specific
   -s, --search    search AUR repository for matching strings
+
   -s, --search    search AUR for matching strings
 
   -i, --info      view package information
 
   -i, --info      view package information
 
   -d, --download  download target(s) -- pass twice to download AUR dependencies
 
   -d, --download  download target(s) -- pass twice to download AUR dependencies
Line 49: Line 49:
 
   -a, --aur        only search, install or clean target(s) from the AUR
 
   -a, --aur        only search, install or clean target(s) from the AUR
 
   -r, --repo      only search, install or clean target(s) from the repositories
 
   -r, --repo      only search, install or clean target(s) from the repositories
 +
AUR specific
 +
  -c, --clean      clean target(s) build files -- can be combined with the -m, -y, -u operations
 
  general
 
  general
 
   -e, --edit      edit target(s) PKGBUILD and view install script
 
   -e, --edit      edit target(s) PKGBUILD and view install script
  -c, --clean      clean target(s) build files -- can be combined with the -m, -y, -u operations
 
 
   -q, --quiet      show less information for query and search
 
   -q, --quiet      show less information for query and search
 
   --devel          consider AUR development packages upgrade
 
   --devel          consider AUR development packages upgrade
 +
  --foreign        consider already installed foreign dependencies
 
   --ignore        ignore a package upgrade (can be used more than once)
 
   --ignore        ignore a package upgrade (can be used more than once)
   --needed        do not reinstall already up to date target(s)
+
   --needed        do not reinstall already up-to-date target(s)
 
   --noconfirm      do not prompt for any confirmation
 
   --noconfirm      do not prompt for any confirmation
 
   --noedit        do not prompt to edit files
 
   --noedit        do not prompt to edit files
 
   --rebuild        always rebuild package(s)
 
   --rebuild        always rebuild package(s)
 +
  --silent        silence output
 
</pre>
 
</pre>
  
Line 68: Line 71:
  
 
As such there are two sets of commands:  
 
As such there are two sets of commands:  
* commands that wrap the pacman binary (-S, -Ss, -Si, -Sw. -Su, -Qu, -Sc) and extend its functions to the AUR. This behavior can be disabled with the fallback variable in the config file.
+
* commands that wrap the pacman binary (-S, -Ss, -Si, -Sw. -Su, -Qu, -Sc) and extend its functions to the AUR. This behavior can be disabled with the ''fallback'' variable in the config file.
 
* commands that are AUR specific (-s, -i, -m, -y, -k, -u).
 
* commands that are AUR specific (-s, -i, -m, -y, -k, -u).
  
Line 114: Line 117:
 
#builddir="${BUILDDIR:-$tmpdir}"      # build directory
 
#builddir="${BUILDDIR:-$tmpdir}"      # build directory
 
#editor="${EDITOR:-vi}"                # PKGBUILD editor
 
#editor="${EDITOR:-vi}"                # PKGBUILD editor
#editpkgbuild=true                    # edit PKGBUILD script
+
#editpkgbuild=true                    # edit PKGBUILD and install scripts
#editinstall=true                      # edit install script
 
 
#fallback=true                        # pacman fallback to the AUR
 
#fallback=true                        # pacman fallback to the AUR
 
#clean=true                            # clean up after package install
 
#clean=true                            # clean up after package install
 
#cleandevel=true                      # clean up devel package
 
#cleandevel=true                      # clean up devel package
#sortbyvotes=true                      # sort search results by votes
+
#silent=false                          # silence output
 +
#sortby=popularity                    # sort method (name|votes|popularity)
 
#sudoloop=false                        # prevent sudo timeout
 
#sudoloop=false                        # prevent sudo timeout
 
</pre>
 
</pre>
Line 174: Line 177:
  
 
===Host name error===
 
===Host name error===
When checking AUR packages for updates, pacaur outputs a lot of "Couldn't resolve host name" and "Timeout was reached" messages in spite of the internet line working correctly.
+
When checking AUR packages for updates, pacaur outputs a lot of "no results found for [packages]:" messages in spite of the internet line working correctly.
 
* [[General recommendations#DNS_speed_improvement|Configure your DNS server]] to improve queries speed. Try using Google primary DNS (8.8.8.8 and 8.8.4.4).
 
* [[General recommendations#DNS_speed_improvement|Configure your DNS server]] to improve queries speed. Try using Google primary DNS (8.8.8.8 and 8.8.4.4).
 
* Alternatively, tweak cower's config file to decrease the number of threads used in "MaxThread" variable.
 
* Alternatively, tweak cower's config file to decrease the number of threads used in "MaxThread" variable.

Revision as of 15:01, 9 September 2015

Pacaur is an Arch User Repository (AUR) helper aiming at speed and simplicity, designed to minimize user prompt interaction and to use an uncluttered interface. It is written in Bash and built upon the well designed cower and expac C backends.

Note: Pacaur is targeted at advanced users who want some degree of automation for repetitive tasks. As such, the user is expected to be familiar with the manual build process.

Philosophy

Pacaur's main feature revolves around a fast workflow idea, that is, spending as little time as possible interacting with package management prompts. Speed, simplicity and the need for an uncluttered interface were also taken into consideration.

A few characteristics:

  • It minimizes user interaction, by retrieving and editing all PKGBUILDs, solving conflicts and asking about providers before building anything.
  • It fully supports split packages with proper independent subpackages installation.
  • It can be used as a separate AUR frontend, or a single tool to manage official and AUR packages.
  • It does not add a lot of features, but simply extends pacman to manage the AUR.
  • It solves the dependency tree entirely through the AUR RPC interface in a secure and
  • It is a small bash script using existing tiny libraries and has very good performance with a small memory footprint.

See also Why pacaur sucks less in the official forum thread.

Installation

Install cowerAUR and its dependencies, and then pacaurAUR itself. Both packages are available in the AUR.

Usage

Invoking pacaur consists of supplying an operation, any applicable options, and usually one or more targets.

usage:  pacaur <operation> [options] [target(s)] -- See also pacaur(8)
operations:
 pacman extension
   -S, -Q           extend pacman operations to the AUR
 AUR specific
   -s, --search     search AUR for matching strings
   -i, --info       view package information
   -d, --download   download target(s) -- pass twice to download AUR dependencies
   -m, --makepkg    download and make target(s)
   -y, --sync       download, make and install target(s)
   -k, --check      check for AUR update(s)
   -u, --update     update AUR package(s)
 general
   -v, --version    display version information
   -h, --help       display help information

options:
 pacman extension - can be used with the -S, -Ss, -Si, -Sii, -Sw, -Su, -Qu, -Sc, -Scc operations
   -a, --aur        only search, install or clean target(s) from the AUR
   -r, --repo       only search, install or clean target(s) from the repositories
 AUR specific
   -c, --clean      clean target(s) build files -- can be combined with the -m, -y, -u operations
 general
   -e, --edit       edit target(s) PKGBUILD and view install script
   -q, --quiet      show less information for query and search
   --devel          consider AUR development packages upgrade
   --foreign        consider already installed foreign dependencies
   --ignore         ignore a package upgrade (can be used more than once)
   --needed         do not reinstall already up-to-date target(s)
   --noconfirm      do not prompt for any confirmation
   --noedit         do not prompt to edit files
   --rebuild        always rebuild package(s)
   --silent         silence output

Userbase target

Pacaur has two types of users in mind:

  • those who prefer to have one single tool to manage AUR and official repositories,
  • those who prefer to keep their AUR frontend separate from Pacman.

As such there are two sets of commands:

  • commands that wrap the pacman binary (-S, -Ss, -Si, -Sw. -Su, -Qu, -Sc) and extend its functions to the AUR. This behavior can be disabled with the fallback variable in the config file.
  • commands that are AUR specific (-s, -i, -m, -y, -k, -u).

Example

By default, pacaur -Ss package will search the repo, then the AUR if necessary.

$ pacaur -Ss expac
community/expac 1-2
    pacman database extraction utility
aur/expac-git 20110324-1 (24)
    pacman database extraction utility

This behavior is optional and can be disabled with the fallback variable in the config file. When disabled, pacaur -Ss package will search the repo only.

Also, pacaur -Ssr package will be restricted to searching in the repo only, while pacaur -Ssa package will search the AUR.

$ pacaur -Ssr expac
community/expac 1-2
    pacman database extraction utility
$ pacaur -Ssa expac
aur/expac-git 20110324-1 (24)
    pacman database extraction utility

pacaur -s package will search the AUR only.

$ pacaur -s expac
aur/expac-git 20110324-1 (24)
    pacman database extraction utility

Configuration

Here are the available options in the config file:

#!/bin/bash

#
# /etc/xdg/pacaur/config
#

# The following options are commented out with their default values listed.
# If you wish to use different values, uncomment and update the values.
# The Color and VerbosePkgLists options can be enabled in /etc/pacman.conf.
#builddir="${BUILDDIR:-$tmpdir}"       # build directory
#editor="${EDITOR:-vi}"                # PKGBUILD editor
#editpkgbuild=true                     # edit PKGBUILD and install scripts
#fallback=true                         # pacman fallback to the AUR
#clean=true                            # clean up after package install
#cleandevel=true                       # clean up devel package
#silent=false                          # silence output
#sortby=popularity                     # sort method (name|votes|popularity)
#sudoloop=false                        # prevent sudo timeout

See also man pacaur.

Config files

Pacaur fully honors pacman and makepkg configuration files, as well as the sudoers and cower config file (if existing).

In particular, the following options in /etc/pacman.conf can be used for further configuration:

  • Colors to enable colored output.
  • VerbosePkgLists to display the name, version and size of target packages formatted as a table.

Note that pacman and makepkg environment variables ($BUILDDIR, $PKGDEST, $PACMAN, ...) are fully honored.

Sudo configuration

Pacaur is designed to be used with sudo for minimal password prompting and your /etc/sudoers should be configured accordingly.

To avoid password prompt timeout (typically if you went grabbing a coffee while waiting the build to finish), disable it in your sudoers:

Defaults passwd_timeout=0

Alternatively, enable the sudoloop option in the config file.

Auto completion

Bash

Because of speed issue, AUR completion is disabled by default.

You can enable it by uncommenting this line in the /usr/share/bash-completion/completions/pacaur file:

   # S) _pacman_pkg Slq; _cower_pkg;; # disabled. Too slow and no fallback var support.

Zsh

You can disable AUR completion using the following zstyle:

   zstyle ':completion:*:pacaur:*' remote-access false

The name `remote-access` mimics other completion zstyles like _cvs and _scp that use this for deciding whether to complete remote files or not.

Troubleshooting

Note: Most complicated errors result from out-dated pacaur/cower package in your system, in case you did not even understand what the error is about and/or cannot find any solution, try explicitly updating your pacaur/cower first.

No results found for error

Merge-arrows-2.pngThis article or section is a candidate for merging with AUR helpers.Merge-arrows-2.png

Notes: This is due to a soname bump in libalpm, and other AUR helpers are affected by this (Discuss in Talk:Pacaur#)

If pacman or its dependencies are updated, pacaur may output "no results found for error". If this occurs, you may need to rebuild the cowerAUR backend.

Host name error

When checking AUR packages for updates, pacaur outputs a lot of "no results found for [packages]:" messages in spite of the internet line working correctly.

  • Configure your DNS server to improve queries speed. Try using Google primary DNS (8.8.8.8 and 8.8.4.4).
  • Alternatively, tweak cower's config file to decrease the number of threads used in "MaxThread" variable.

Using gvim as editor

When using gvim as editor, gvim opens but the build continues. In the config file, try:

editor="gvim --nofork"

Improving pacaur

Internationalization

See Internationalization howto.

Bug reports

When reporting problems, please:

  • check whether "makepkg -si" can build and install a package successfully. As pacaur relies exclusively on makepkg to build and install packages, the PKGBUILD must be corrected by its maintainer if makepkg fails.
  • check whether the package and its dependencies provide correct AUR metadata.
  • check that the problem is reproducible, and is not caused by a misconfiguration of pacaur/pacman/makepkg/sudoers/gpg/etc.
  • post the ouput of "bash -x pacaur <your command>" in the forum thread or on github to help debug the issue.

Feature requests

Pacaur is considered as being "feature complete" and will most probably not include any new features. However, any improvement request or patch will be considered, and might be implemented as long as the objectives of speed, simplicity, fast workflow, uncluttered interface and the Arch way are respected.

See also