Difference between revisions of "Pacaur"
(corrected 'searching within repo only' command) |
(pacman-color is deprecated) |
||
Line 25: | Line 25: | ||
Simple | Simple | ||
* It does not add a lot of features, but simply extends pacman to manage the AUR. | * It does not add a lot of features, but simply extends pacman to manage the AUR. | ||
− | * It does not reinvent the wheel, but is built upon existing tools (cower, expac, sudo | + | * It does not reinvent the wheel, but is built upon existing tools (cower, expac, sudo). |
* It is a small bash script using tiny C libraries. | * It is a small bash script using tiny C libraries. | ||
* It is based on the libalpm C interface directly maintained by a pacman developer. | * It is based on the libalpm C interface directly maintained by a pacman developer. | ||
Line 52: | Line 52: | ||
You can then install {{AUR|cower}} as a dependency, and then {{AUR|pacaur}} itself. Both those packages are available from the AUR. You will have to install them with the [[Arch User Repository|official method]] for installing unsupported packages. | You can then install {{AUR|cower}} as a dependency, and then {{AUR|pacaur}} itself. Both those packages are available from the AUR. You will have to install them with the [[Arch User Repository|official method]] for installing unsupported packages. | ||
{{Note|All users should be familiar with the build process. You can take this as an opportunity to learn what the operations are that make [[AUR helpers]] automatic.}} | {{Note|All users should be familiar with the build process. You can take this as an opportunity to learn what the operations are that make [[AUR helpers]] automatic.}} | ||
− | |||
− | |||
==Usage== | ==Usage== | ||
Line 145: | Line 143: | ||
#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 | ||
− | |||
#secure=false # enhanced security | #secure=false # enhanced security | ||
+ | #sudoloop=false # prevent sudo timeout | ||
</pre> | </pre> | ||
Revision as of 09:52, 5 April 2013
Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary end
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.
Contents
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.
Pacaur is:
Fast
- It minimizes user interaction.
- It has very good performance with a small memory footprint.
- It retrieve and edit all PKGBUILDs, and checks and solves all conflicts before building anything.
Simple
- It does not add a lot of features, but simply extends pacman to manage the AUR.
- It does not reinvent the wheel, but is built upon existing tools (cower, expac, sudo).
- It is a small bash script using tiny C libraries.
- It is based on the libalpm C interface directly maintained by a pacman developer.
Powerful
- It can be used as a separate AUR frontend, or a single tool to manage official and AUR packages.
- Its search function provides regex support (through cower).
- It provides binary and AUR package names completion.
- It passes arguments to pacman when appropriate.
- It shows current and available versions when checking for updates.
Secure
- It does not source PKGBUILDs unecessarily.
- It detects and warns of possible malicious pseudocode in PKGBUILDs.
- It disposes of an additional full secured mode for paranoid people.
Installation
The following binary dependencies need to be installed:
You can then install cowerAUR as a dependency, and then pacaurAUR itself. Both those packages are available from the AUR. You will have to install them with the official method for installing unsupported packages.
Usage
Invoking pacaur consists of supplying an operation, any applicable options, and usually one or more targets.
usage: pacaur <operation> [options] [package(s)] operations: pacman extension -S, -Q extend pacman operations to the AUR AUR only -s, --search search AUR repository for matching strings -i, --info view package information -- pass twice for details -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 --fixbackend quickly rebuild backend 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 packages from the AUR -r, --repo only search, install or clean packages from the repositories general -e, --edit edit target PKGBUILD -- can be combined with the -d, -m, -y, -u flags -c, --clean clean target(s) build files -- can be combined with the -m, -y, -u flags -q, --quiet show less information for query and search --devel consider AUR development packages upgrade --ignore ignore a package upgrade (can be used more than once) --noconfirm do not prompt for any confirmation --noedit do not prompt to edit files --rebuild always rebuild package
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
pacaur -Ss package will search the repo, then the AUR if necessary (fallback enabled).
$ pacaur -Ss expac community/expac 1-2 pacman database extraction utility aur/expac-git 20110324-1 (24) pacman database extraction utility
pacaur -Ssr package will be restricted to searching in the repo only, while pacaur -Ssa package will search the AUR (fallback disabled).
$ 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:
# # /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. #builddir="${BUILDDIR:-$tmpdir}" # build directory #editor="${EDITOR:-vi}" # PKGBUILD editor #editpkgbuild=true # edit PKGBUILD script #editinstall=true # edit install script #fallback=true # pacman fallback to the AUR #clean=true # clean up after package install #cleandevel=true # clean up devel package #secure=false # enhanced security #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).
Environment variables
Note that pacaur fully honors pacman and makepkg environment variables ($BUILDDIR
, $PKGDEST
, $PACMAN
, ...).
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
Troubleshooting
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.
- 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 that the problem is reproducible, and is not caused by a misconfiguration of pacman.conf/makepkg.conf/pacaur.conf/sudoers/etc.
- post the ouput of "bash -x pacaur <your command>" here or on github to help me debug the issue.
Feature requests
Pacaur is considered as "features complete" and most probably will not include new features. However, any feature 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.