Git Product home page Git Product logo

aurman's Introduction

aurman - AUR helper with almost pacman syntax

aurman in the AUR

aurman-git (https://aur.archlinux.org/packages/aurman-git) - development version

aurman (https://aur.archlinux.org/packages/aurman) - release version

Syntax

Usage

aurman < operation > [ options ] [ targets ] - see also https://www.archlinux.org/pacman/pacman.8.html

Description

aurman is meant as a pacman wrapper. All pacman operations are supported, but calling aurman with an operation besides --sync or -S will just pass the arguments to pacman.

the following native pacman options for --sync or -S will be forwarded to pacman
  • -r, --root
  • -v, --verbose
  • --cachedir
  • --color
  • --debug
  • --gpgdir
  • --hookdir
  • --logfile
  • --noconfirm
  • --confirm
  • --force
  • --asdeps
  • --asexplicit
  • --needed
  • --ignore
  • --ignoregroup
  • -s, --search
  • -u, --sysupgrade
  • -y, --refresh
  • -c, --clean
the following native pacman options for --sync or -S will also be used by aurman for aur packages
  • --noconfirm
  • --needed
  • --ignore
  • --ignoregroup
  • -s, --search
  • -u, --sysupgrade
  • -c, --clean
aurman exclusive options for --sync or -S
  • --noedit: Will not show changes of PKGBUILDs, .install and other relevant files. just assumes you are okay with the changes.

  • --always_edit: Lets the user edit the files of packages, even if there are no new changes.

  • --show_changes: Will show changes of PKGBUILDs, .install and other relevant files without asking

  • --devel: Will fetch current development packages versions to decide whether a new version is available or not.

  • --deep_search: Dependency solving will ignore currently fulfilled dependencies of your system and try to solve the problem for a system with zero packages installed. should almost never be needed, but if aurman is not able to find a solution to install packages, try rerunning aurman with this flag. but be warned, it could take a few seconds to find solutions.

  • --pgp_fetch: Fetches needed pgp keys without asking the user

  • --keyserver: You may specify a keyserver to fetch the pgp keys from

  • --aur: Do things only for aur

  • --repo: Do things only for regular repos

  • --domain: Change the base url for aur requests (https://aur.archlinux.org is the default)

  • --solution_way: Print what exactly will be done, order of installing/removing packages

  • --holdpkg: Specify packages which are installed on your system but must not be removed. you may specify more than one package, space separated

  • --holdpkg_conf: Append packages from the pacman.conf to --holdpkg

  • --do_everything: -u for repo packages will also be handled by aurman, not by pacman. may be useful if you are using the aurman config to fetch repo packages from other repos than they would normally be installed from. this is in general not recommended!

Config

You may use the file aurman_config under $XDG_CONFIG_HOME/aurman (fallback to ~/.config/aurman in case of no $XDG_CONFIG_HOME) as config for aurman.

config options

choose between multiple package sources

By default aurman assumes the following priorities in case of multiple available packages with the same names (high to low):

The order of repositories in the configuration files matters; repositories listed first will take precedence over those listed later in the file when packages in two repositories have identical names, regardless of version number.

  • aur packages

If one wants to override this priority, it has to be done via the aurman config.

For aur packages create a section [aur_packages] and list the names of the aur packages.

For repo packages create a section [repo_packages] and list the names of the repo packages followed by = and the name of the repo.

Notice: Those packages will be excluded from the pacman --sysupgrade by --ignore. Otherwise pacman would replace those packages

Example:

[aur_packages]
aur_package_name
other_aur_package_name

[repo_packages]
repo_package_name=repo_one
other_repo_package_name=repo_two

pgp fetching keyserver

you may specify the keyserver for pgp fetching in the config instead of yielding it via command line.

Notice: command line overrides config

create a key called keyserver in the section [miscellaneous] to do that.

Example:

[miscellaneous]
keyserver=hkp://ipv4.pool.sks-keyservers.net:11371

disable notification about packages neither in known repos nor in the aur

create a key called no_notification_unknown_packages in the section [miscellaneous] to do that.

Example:

[miscellaneous]
no_notification_unknown_packages

you may also disable the notification for single packages only.

create a section [no_notification_unknown_packages] and list the names of the packages as values

Example:

[no_notification_unknown_packages]
package1_name
package2_name

disable background sudo loop

create a key called no_sudo_loop in the section [miscellaneous] to do that.

Example:

[miscellaneous]
no_sudo_loop

Features

  • threaded sudo loop in the background so you only have to enter your password once
  • reliable dependency resolving
  • conflict detection
  • split package support
  • development package support
  • distinction between explicitly and implicitly installed packages
  • let the user see and edit all needed PKGBUILDs before any of the building of AUR packages starts
  • fetching of needed pgp keys for package building
  • pacman --search for repo and aur packages (aur results sorted by popularity)
  • search function supports regex. for searching the aur the first span of at least two consecutive non-regex characters is being used. these results are being filtered by the regex expression afterwards.
  • differentiate between the possible sources to install packages from in case of same names in different known repos and/or the aur

Dependency solving description including benchmarks

https://github.com/polygamma/aurman/wiki/Description-of-the-aurman-dependency-solving

Using aurman just as dependency solver

https://github.com/polygamma/aurman/wiki/Using-aurman-as-dependency-solver

FAQ

Question

aurman wants to remove packages, which should not be removed, what's the matter?

example

Answer

It may be, like in this case, that aurman assumes that three packages are going to be removed, which is in fact not going to happen (in this case).

The problem is, that the package ffmpeg-full does not list the exact versions of the .so which are being provided.

Hence aurman assumes, that the listed deps are going to be unfulfilled, and hence those packages are going to be removed.

However: aurman does not delete packages by itself, so, if ffmpeg-full actually provides the correct versions of the files, nothing is going to be deleted.

But the information about the exact versions are only available after building ffmpeg-full, hence it's nothing which may be determined that early.

So: The problem really is the PKGBUILD of ffmpeg-full, not aurman.

tl;dr: If you just install, and the versions are actually fine, nothing is going to be deleted. Otherwise it will be as predicted by aurman.

What you should do: Contact the maintainer of the relevant packages and ask to append the explicit versions of the files being provided.

Question

How do I change the editor used by aurman for editing PKGBUILDs etc.?

Answer

aurman uses the environment variables VISUAL and EDITOR, hence you have to change those variables.

If VISUAL is set, aurman uses that,

else if EDITOR is set, aurman uses that,

else aurman uses /usr/bin/nano

Screenshots

aurman's People

Contributors

polygamma avatar

Watchers

James Cloos avatar kzwkt avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.