pikaur


Namepikaur JSON
Version 1.19 PyPI version JSON
download
home_pageNone
SummaryAUR helper with minimal dependencies
upload_time2024-04-05 00:47:55
maintainerNone
docs_urlNone
authorNone
requires_python>=3.11
licenseNone
keywords arch aur helper linux
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage
            # pikaur

[![Tests](https://github.com/actionless/pikaur/actions/workflows/tests.yml/badge.svg)](https://github.com/actionless/pikaur/actions/workflows/tests.yml) [![Coverage Status](https://coveralls.io/repos/github/actionless/pikaur/badge.svg?branch=master)](https://coveralls.io/github/actionless/pikaur?branch=master) [![Commit Activity](https://img.shields.io/github/commit-activity/m/actionless/pikaur)](https://github.com/actionless/pikaur/graphs/commit-activity) [![Support Project](https://img.shields.io/badge/support%20project-pink?logo=buymeacoffee&logoColor=black)](https://www.paypal.me/actionless)

AUR helper with minimal dependencies. Review PKGBUILDs all in once, next build them all without user interaction.

Inspired by `pacaur`, `yaourt` and `yay`.

Instead of trying to be smarter than pacman (by using `--nodeps`, `--force`, `--ask`, `--noconfirm` and so) it just interactively tells pacman what to do. If pacman asks some unexpected question, the user will be just able to answer it manually.

Notable features:

* build local PKGBUILDs with AUR deps (`-P`/`--pkgbuild`)
* retrieve PKGBUILDs from AUR and ABS (`-G`/`--getpkgbuild`)
* interactively handle common build problems (like untrusted GPG key or checksum mismatch, wrong architecture)
* using [systemd dynamic users](http://0pointer.net/blog/dynamic-users-with-systemd.html "") if building packages as root user
* show unread [Arch news](https://www.archlinux.org/news/ "") before sysupgrade
* [m]anual package selection in [install prompt](#screenshot "") using text editor (ignore unwanted updates or select package provider)
* show AUR package diff and review PKGBUILD and .install files
* [upgrade](#how-to-upgrade-all-the-dev--git-packages-at-once "") `-git`, `-svn` and other dev packages
* AUR package names in shell completion (bash, fish, zsh)
* quickly search&install package by `pikaur <search-query>`

The following pacman operations are extended with AUR capabilities:

* `-S` (build AUR packages, `--needed`, `--ignore` and `--noconfirm` are supported as in pacman, other args are just bypassed to it)
* `-Sw` (build AUR packages but don't install)
* `-Ss` (search or list all AUR packages, `-q` also supported)
* `-Si` (package info)
* `-Su` / `-Syu` (sysupgrade)
* `-Sc` / `-Scc` (build dir/built packages cache clean)
* `-Qu` (query upgradeable, `-q` supported)

Also see `pikaur -Sh`, `-Qh`, `-Ph` and `-Gh` for pikaur-specific flags.

Pikaur wraps all the pacman options accurately except for `-Syu` which is being split into `-Sy` (to refresh package list first) and `-Su` (to install upgrades after user confirmed the package list or altered it via [M]anual package selection).


* [Installation](#installation "")
* [Run without installation](#run-without-installation "")
* [File locations](#file-locations "")
* [Config file](#configuration "")
* [FAQ](#faq "")
* [Contributing](#contributing "")
* - [Code](#code "")
* - [Translations](#translations "")
* - [Documentation](#documentation "")
* [Authors](#authors "")


## Installation

```sh
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/pikaur.git
cd pikaur
makepkg -fsri
```

## Screenshot

![Screenshot](https://raw.githubusercontent.com/actionless/pikaur/master/screenshots/package_update.png "Screenshot")


## Run without installation

```sh
git clone https://github.com/actionless/pikaur.git
cd pikaur
python3 ./pikaur.py -S AUR_PACKAGE_NAME
```



## File locations

```sh
~/.cache/pikaur/
├── build/  # build directory (removed after successful build)
├── pkg/  # built packages directory
~/.config/pikaur.conf  # config file
~/.local/share/pikaur/
└── aur_repos/  # keep aur repos there; show diff when updating
    └── last_installed.txt  # aur repo hash of last successfully installed package
```



## Configuration

`~/.config/pikaur.conf`


#### [sync]

##### DevelPkgsExpiration (default: -1)
When doing sysupgrade, count all devel (-git, -svn, -bzr, -hg, -cvs) packages older than N days as being upgradeable.
-1 disables this.
0 means always upgrade.
Passing `--devel` argument will override this option to 0.

##### AlwaysShowPkgOrigin (default: no)
When installing new packages, show their repository name, even if they are coming from one of the official Arch Linux repositories.

##### UpgradeSorting (default: versiondiff)
When upgrading packages, sort them by `versiondiff`, `pkgname` or `repo`.

##### ShowDownloadSize (default: no)
When installing repository packages, show their download size.

##### IgnoreOutofdateAURUpgrades (default: no)
When doing sysupgrade ignore AUR packages which have `outofdate` mark.


#### [build]

##### GpgDir (default: ) (root default: /etc/pacman.d/gnupg)
Provides an override path for the GPG home directory used when validating aur package sources.
See explanations of `--homedir` and `${GNUPGHOME}` in the gpg man pages for more details.
Will be overridden by `--build_gpgdir` argument.

##### KeepBuildDir (default: no)
Don't remove `~/.cache/pikaur/build/${PACKAGE_NAME}` directory between the builds.
Will be overridden by `-k/--keepbuild` flag.

##### KeepDevBuildDir (default: yes)
When building dev packages (`-git`, `-svn`, etc),
don't remove `~/.cache/pikaur/build/${PACKAGE_NAME}` directory between the builds.
`No` value will be overridden by `KeepBuildDir` option and `-k/--keepbuild` flag.

##### KeepBuildDeps (default: no)
Don't remove build dependencies between and after the builds.
Will be overridden by `--keepbuilddeps` flag.

##### SkipFailedBuild (default: no)
Always skip the build if it fails and don't show recovery prompt.

##### DynamicUsers (default: root) [root|never|always]
When to isolate the build using systemd dynamic users.
(`root` - only when running as root)
Will be overridden by `--dynamic-users` flag.

##### IgnoreArch (default: no)
Ignore specified architectures (`arch`-array) in PKGBUILDs.


#### [review]

##### DontEditByDefault (default: no)
Always default to no when prompting to edit PKGBUILD and install files.

##### NoEdit (default: no)
Don't prompt to edit PKGBUILD and install files.
Will be overridden by `--noedit` and `--edit` flags.

##### NoDiff (default: no)
Don't prompt to show the build files diff.
Will be overridden by `--nodiff` flag.

##### GitDiffArgs (default: --ignore-space-change,--ignore-all-space)
Flags to be passed to `git diff` command when reviewing build files.
Should be separated by commas (`,`).

##### DiffPager (default: auto)
Wherever to use `less` pager when viewing AUR packages diff. Choices are `always`, `auto` or `never`.

##### HideDiffFiles (default: .SRCINFO)
Hide `git diff` for file paths, separated by commas (`,`).


#### [colors]

Terminal colors, from 0 to 15:

##### Version (default: 10)
##### VersionDiffOld (default: 11)
##### VersionDiffNew (default: 9)


#### [ui]

##### RequireEnterConfirm (default: yes)
Require enter key to be pressed when answering questions.

##### PrintCommands (default: no)
Print each command which pikaur is currently spawning.

##### GroupByRepo (default: yes)
Groups official packages by repository when using commands like `pikaur -Ss <query>` or `pikaur <query>`.

##### AurSearchSorting (default: hottest)
Sorting key for AUR packages when using commands like `pikaur -Ss <query>` or `pikaur <query>`. Accepts `hottest`, `numvotes`, `lastmodified`, `popularity`, `pkgname`. Only `pkgname` is sorted ascendingly. The metric for `hottest` is weighted by both `numvotes` and `popularity`.

##### DisplayLastUpdated (default: no)
Display the date a package is last updated on search results when using commands like `pikaur -Ss <query>` or `pikaur <query>`.

##### ReverseSearchSorting (default: no)
Reverse search results of the commands like `pikaur -Ss <query>` or `pikaur <query>`.

##### WarnAboutPackageUpdates (default: )
Comma-separated list of packages names or globs, which upgrade should have additional warning message in the UI.


#### [misc]

##### PacmanPath (default: pacman)
Path to pacman executable.

##### PreserveEnv (default: `PKGDEST,VISUAL,EDITOR,http_proxy,https_proxy,ftp_proxy,HTTP_PROXY,HTTPS_PROXY,FTP_PROXY,ALL_PROXY`)
Preserve environment variables of current user when running pikaur as root (comma-separated).
Will be overriden by `--preserve-env` flag.

##### PrivilegeEscalationTool (default: sudo)
A tool used to escalate user privileges. Currently supported options are `sudo` and `doas`.

##### PrivilegeEscalationTarget (default: pikaur)
Choices: pikaur, pacman.
In case of elevating privilege for pacman - pikaur would ask for password every time pacman runs.

##### UserId (default: 0)
User ID to run makepkg if pikaur started from root.
0 - means disabled, not that it will use uid=0.
Setting this option would override DynamicUsers settings and force changing to this UID instead of a dynamic one.


#### [network]

##### AurUrl (default: https://aur.archlinux.org)
AUR Host.

##### NewsUrl (default: https://www.archlinux.org/feeds/news/)
Arch Linux News URL, useful for users of Parabola or other Arch derivatives.

##### Socks5Proxy (default: )
Specify a socks5 proxy which is used to get AUR package information.

The format is `[host[:port]]`, and the default port is 1080.
PySocks module (`python-pysocks` package) should be installed in order to use this option.

Note that any downloads by `pacman`, `git` or `makepkg` will NOT use this proxy.
If that's needed, setting proxy options in their own config files will take effect
(such as `~/.gitconfig`, `~/.curlrc`).

##### AurHttpProxy (default: )
Specify a HTTP proxy which is used to get AUR package information and to `git`-clone from AUR.

Note that any downloads by `pacman`, `git` (inside the build) or `makepkg` will NOT use this proxy.
If that's needed, setting proxy options in their own config files will take effect
(such as `env HTTP_PROXY=`, `~/.gitconfig`, `~/.curlrc`).

##### AurHttpsProxy (default: )
Specify a HTTPS proxy which is used to get AUR package information and to `git`-clone from AUR.

Note that any downloads by `pacman`, `git` (inside the build) or `makepkg` will NOT use this proxy.
If that's needed, setting proxy options in their own config files will take effect
(such as `env HTTPS_PROXY=`, `~/.gitconfig`, `~/.curlrc`).



## FAQ


##### How to upgrade all the dev (-git) packages at once?

`pikaur -Sua --devel --needed`

(`--needed` option will make sure what the same package version won't be rebuilt again and `-a/--aur` will ensure what only AUR packages will be upgraded)


##### How to manually remove unneeded dependencies?

Pikaur is not needed for that, use just Pacman itself:

`sudo pacman -Rs $(pacman -Qtdq)` (however `pikaur -Rs ...` would work as well if you lazy to type `sudo` :) )


##### How to override default source directory, build directory or built package destination?

Set `SRCDEST`, `BUILDDIR` or `PKGDEST` accordingly in `makepkg.conf`.

For more info see `makepkg` documentation.


##### How to clean old or uninstalled AUR packages in ~/.cache/pikaur/pkg?

Use `paccache(8)` with the `--cachedir` option.

To clean them up automatically, you may:

- use a pacman hook.  Start with the provided
  Copy `/usr/share/pikaur/examples/pikaur-cache.hook` to
  `/usr/share/libalpm/hooks/pikaur-cache-cleanup.hook`,
  remember to update the cache's path.

- use a systemd service & timer (provided `pikaur-cache.service` and
  `pikaur-cache.timer`).  Configure it with `systemctl --user edit
  --full pikaur-cache.service` and activate it with `systemctl --user
  enable --now pikaur-cache.timer`.


##### How to restore original PKGBUILD after editing?

Go to the package's directory, `cd ~/.local/share/pikaur/aur_repos/${PACKAGE_NAME}`.
Review the current PKGBUILD file changes with `git diff` and then reset with  `git checkout -- '*'`.


##### How to see upgrade list without syncing the database? (like "checkupdates" tool from pacman)

Actually use `checkupdates` tool to check the repo updates and use pikaur only for AUR (`-a`/`--aur` switch):

```
checkupdates ; pikaur -Qua 2>/dev/null
```

##### Pikaur slow when running it as root user (or via sudo)

If you find the command takes a long time to initialize, make sure to periodically clear your cache: `pikaur -Scc`. Root pikaur is using SystemD Dynamic Users to isolate build process from the root, and it takes some time to change the owner of build cache to dynamic temporary user.

##### How to migrate from Yay?

This will migrate the cache of what AUR packages have been installed, so you can still see a Git diff for the next update of each package:

```sh
mv ~/.cache/yay/* ~/.local/share/pikaur/aur_repos/
find ~/.local/share/pikaur/aur_repos -mindepth 1 -maxdepth 1 -type d | xargs -r -I '{}' -- sh -c 'cd "{}" && git rev-parse HEAD > last_installed.txt'
```

##### How to downgrade a package?

This will show a list of commits to choose one to downgrade to.

```sh
pikaur -G <package>  # retrieve package sources
cd <package>
git log  # choose <commit> from the list
git checkout <commit>
pikaur -Pi  # build and install older version
```

##### How to add additional trusted keys when building with systemd dynamic users?
When using systemd dynamic users, by default, there is not a persistent user or gpg home directory. You can set the path to a persistent gpg home directory using the cli argument `--build_gpgdir`. Alternatively, you can set a permanent default with the configuration option `[build] gpgdir` in the root pikaur configuration file `/root/.config/pikaur.conf` The below example configures makepkg to use a hypothetical gpg home directory at `/etc/pikaur.d/gnupg` when validating source files.

```ini
[build]
gpgdir=/etc/pikaur.d/gnupg
```

You can initialize a minimal gnupghome at the example path by executing the below commands as root.

```sh
export GNUPGHOME="/etc/pikaur.d/gnupg"
mkdir -p "${GNUPGHOME}"
gpg --batch --passphrase '' --quick-gen-key "pikaur@localhost" rsa sign 0
```

## Contributing


### Code

You can start from [this list of issues](https://github.com/actionless/pikaur/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 ""). Grep-ing `@TODO` comments also useful if you're itching to write something.

#### Running CI locally

##### Linters (code quality check)

```sh
./maintenance_scripts/lint.sh
```

##### Tests

```sh
./maintenance_scripts/docker_test.sh
```

See also `./maintenance_scripts/docker_test.sh --help` for more options.


### Translations

To start working on a new language, say `hi_IN` (Indian Hindi), add it to the
`Makefile` `LANGS` variable and run `make`. Then translate `locale/hi_IN.po` using
your favorite PO editor. Run `make` every time the Python code strings change
or the `.po` is modified.



## Authors

To see the list of authors, use this command inside pikaur git repository directory:

```sh
git log --pretty=tformat:"%an <%ae>" | sort -u
```

### Special thanks

@AladW ([aurutils](https://github.com/AladW/aurutils)), @morganamilo ([yay](https://github.com/Jguer/yay)) during the early stages of Pikaur development.
And [all the other issue contributors](https://github.com/actionless/pikaur/issues?utf8=%E2%9C%93&q=is%3Aissue+-author%3Aactionless) for helping in triaging the bugs and clearing up feature requirements.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "pikaur",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.11",
    "maintainer_email": null,
    "keywords": "arch, aur, helper, linux",
    "author": null,
    "author_email": "Yauheni Kirylau <actionless.loveless@gmail.com>",
    "download_url": null,
    "platform": null,
    "description": "# pikaur\n\n[![Tests](https://github.com/actionless/pikaur/actions/workflows/tests.yml/badge.svg)](https://github.com/actionless/pikaur/actions/workflows/tests.yml) [![Coverage Status](https://coveralls.io/repos/github/actionless/pikaur/badge.svg?branch=master)](https://coveralls.io/github/actionless/pikaur?branch=master) [![Commit Activity](https://img.shields.io/github/commit-activity/m/actionless/pikaur)](https://github.com/actionless/pikaur/graphs/commit-activity) [![Support Project](https://img.shields.io/badge/support%20project-pink?logo=buymeacoffee&logoColor=black)](https://www.paypal.me/actionless)\n\nAUR helper with minimal dependencies. Review PKGBUILDs all in once, next build them all without user interaction.\n\nInspired by `pacaur`, `yaourt` and `yay`.\n\nInstead of trying to be smarter than pacman (by using `--nodeps`, `--force`, `--ask`, `--noconfirm` and so) it just interactively tells pacman what to do. If pacman asks some unexpected question, the user will be just able to answer it manually.\n\nNotable features:\n\n* build local PKGBUILDs with AUR deps (`-P`/`--pkgbuild`)\n* retrieve PKGBUILDs from AUR and ABS (`-G`/`--getpkgbuild`)\n* interactively handle common build problems (like untrusted GPG key or checksum mismatch, wrong architecture)\n* using [systemd dynamic users](http://0pointer.net/blog/dynamic-users-with-systemd.html \"\") if building packages as root user\n* show unread [Arch news](https://www.archlinux.org/news/ \"\") before sysupgrade\n* [m]anual package selection in [install prompt](#screenshot \"\") using text editor (ignore unwanted updates or select package provider)\n* show AUR package diff and review PKGBUILD and .install files\n* [upgrade](#how-to-upgrade-all-the-dev--git-packages-at-once \"\") `-git`, `-svn` and other dev packages\n* AUR package names in shell completion (bash, fish, zsh)\n* quickly search&install package by `pikaur <search-query>`\n\nThe following pacman operations are extended with AUR capabilities:\n\n* `-S` (build AUR packages, `--needed`, `--ignore` and `--noconfirm` are supported as in pacman, other args are just bypassed to it)\n* `-Sw` (build AUR packages but don't install)\n* `-Ss` (search or list all AUR packages, `-q` also supported)\n* `-Si` (package info)\n* `-Su` / `-Syu` (sysupgrade)\n* `-Sc` / `-Scc` (build dir/built packages cache clean)\n* `-Qu` (query upgradeable, `-q` supported)\n\nAlso see `pikaur -Sh`, `-Qh`, `-Ph` and `-Gh` for pikaur-specific flags.\n\nPikaur wraps all the pacman options accurately except for `-Syu` which is being split into `-Sy` (to refresh package list first) and `-Su` (to install upgrades after user confirmed the package list or altered it via [M]anual package selection).\n\n\n* [Installation](#installation \"\")\n* [Run without installation](#run-without-installation \"\")\n* [File locations](#file-locations \"\")\n* [Config file](#configuration \"\")\n* [FAQ](#faq \"\")\n* [Contributing](#contributing \"\")\n* - [Code](#code \"\")\n* - [Translations](#translations \"\")\n* - [Documentation](#documentation \"\")\n* [Authors](#authors \"\")\n\n\n## Installation\n\n```sh\nsudo pacman -S --needed base-devel git\ngit clone https://aur.archlinux.org/pikaur.git\ncd pikaur\nmakepkg -fsri\n```\n\n## Screenshot\n\n![Screenshot](https://raw.githubusercontent.com/actionless/pikaur/master/screenshots/package_update.png \"Screenshot\")\n\n\n## Run without installation\n\n```sh\ngit clone https://github.com/actionless/pikaur.git\ncd pikaur\npython3 ./pikaur.py -S AUR_PACKAGE_NAME\n```\n\n\n\n## File locations\n\n```sh\n~/.cache/pikaur/\n\u251c\u2500\u2500 build/  # build directory (removed after successful build)\n\u251c\u2500\u2500 pkg/  # built packages directory\n~/.config/pikaur.conf  # config file\n~/.local/share/pikaur/\n\u2514\u2500\u2500 aur_repos/  # keep aur repos there; show diff when updating\n    \u2514\u2500\u2500 last_installed.txt  # aur repo hash of last successfully installed package\n```\n\n\n\n## Configuration\n\n`~/.config/pikaur.conf`\n\n\n#### [sync]\n\n##### DevelPkgsExpiration (default: -1)\nWhen doing sysupgrade, count all devel (-git, -svn, -bzr, -hg, -cvs) packages older than N days as being upgradeable.\n-1 disables this.\n0 means always upgrade.\nPassing `--devel` argument will override this option to 0.\n\n##### AlwaysShowPkgOrigin (default: no)\nWhen installing new packages, show their repository name, even if they are coming from one of the official Arch Linux repositories.\n\n##### UpgradeSorting (default: versiondiff)\nWhen upgrading packages, sort them by `versiondiff`, `pkgname` or `repo`.\n\n##### ShowDownloadSize (default: no)\nWhen installing repository packages, show their download size.\n\n##### IgnoreOutofdateAURUpgrades (default: no)\nWhen doing sysupgrade ignore AUR packages which have `outofdate` mark.\n\n\n#### [build]\n\n##### GpgDir (default: ) (root default: /etc/pacman.d/gnupg)\nProvides an override path for the GPG home directory used when validating aur package sources.\nSee explanations of `--homedir` and `${GNUPGHOME}` in the gpg man pages for more details.\nWill be overridden by `--build_gpgdir` argument.\n\n##### KeepBuildDir (default: no)\nDon't remove `~/.cache/pikaur/build/${PACKAGE_NAME}` directory between the builds.\nWill be overridden by `-k/--keepbuild` flag.\n\n##### KeepDevBuildDir (default: yes)\nWhen building dev packages (`-git`, `-svn`, etc),\ndon't remove `~/.cache/pikaur/build/${PACKAGE_NAME}` directory between the builds.\n`No` value will be overridden by `KeepBuildDir` option and `-k/--keepbuild` flag.\n\n##### KeepBuildDeps (default: no)\nDon't remove build dependencies between and after the builds.\nWill be overridden by `--keepbuilddeps` flag.\n\n##### SkipFailedBuild (default: no)\nAlways skip the build if it fails and don't show recovery prompt.\n\n##### DynamicUsers (default: root) [root|never|always]\nWhen to isolate the build using systemd dynamic users.\n(`root` - only when running as root)\nWill be overridden by `--dynamic-users` flag.\n\n##### IgnoreArch (default: no)\nIgnore specified architectures (`arch`-array) in PKGBUILDs.\n\n\n#### [review]\n\n##### DontEditByDefault (default: no)\nAlways default to no when prompting to edit PKGBUILD and install files.\n\n##### NoEdit (default: no)\nDon't prompt to edit PKGBUILD and install files.\nWill be overridden by `--noedit` and `--edit` flags.\n\n##### NoDiff (default: no)\nDon't prompt to show the build files diff.\nWill be overridden by `--nodiff` flag.\n\n##### GitDiffArgs (default: --ignore-space-change,--ignore-all-space)\nFlags to be passed to `git diff` command when reviewing build files.\nShould be separated by commas (`,`).\n\n##### DiffPager (default: auto)\nWherever to use `less` pager when viewing AUR packages diff. Choices are `always`, `auto` or `never`.\n\n##### HideDiffFiles (default: .SRCINFO)\nHide `git diff` for file paths, separated by commas (`,`).\n\n\n#### [colors]\n\nTerminal colors, from 0 to 15:\n\n##### Version (default: 10)\n##### VersionDiffOld (default: 11)\n##### VersionDiffNew (default: 9)\n\n\n#### [ui]\n\n##### RequireEnterConfirm (default: yes)\nRequire enter key to be pressed when answering questions.\n\n##### PrintCommands (default: no)\nPrint each command which pikaur is currently spawning.\n\n##### GroupByRepo (default: yes)\nGroups official packages by repository when using commands like `pikaur -Ss <query>` or `pikaur <query>`.\n\n##### AurSearchSorting (default: hottest)\nSorting key for AUR packages when using commands like `pikaur -Ss <query>` or `pikaur <query>`. Accepts `hottest`, `numvotes`, `lastmodified`, `popularity`, `pkgname`. Only `pkgname` is sorted ascendingly. The metric for `hottest` is weighted by both `numvotes` and `popularity`.\n\n##### DisplayLastUpdated (default: no)\nDisplay the date a package is last updated on search results when using commands like `pikaur -Ss <query>` or `pikaur <query>`.\n\n##### ReverseSearchSorting (default: no)\nReverse search results of the commands like `pikaur -Ss <query>` or `pikaur <query>`.\n\n##### WarnAboutPackageUpdates (default: )\nComma-separated list of packages names or globs, which upgrade should have additional warning message in the UI.\n\n\n#### [misc]\n\n##### PacmanPath (default: pacman)\nPath to pacman executable.\n\n##### PreserveEnv (default: `PKGDEST,VISUAL,EDITOR,http_proxy,https_proxy,ftp_proxy,HTTP_PROXY,HTTPS_PROXY,FTP_PROXY,ALL_PROXY`)\nPreserve environment variables of current user when running pikaur as root (comma-separated).\nWill be overriden by `--preserve-env` flag.\n\n##### PrivilegeEscalationTool (default: sudo)\nA tool used to escalate user privileges. Currently supported options are `sudo` and `doas`.\n\n##### PrivilegeEscalationTarget (default: pikaur)\nChoices: pikaur, pacman.\nIn case of elevating privilege for pacman - pikaur would ask for password every time pacman runs.\n\n##### UserId (default: 0)\nUser ID to run makepkg if pikaur started from root.\n0 - means disabled, not that it will use uid=0.\nSetting this option would override DynamicUsers settings and force changing to this UID instead of a dynamic one.\n\n\n#### [network]\n\n##### AurUrl (default: https://aur.archlinux.org)\nAUR Host.\n\n##### NewsUrl (default: https://www.archlinux.org/feeds/news/)\nArch Linux News URL, useful for users of Parabola or other Arch derivatives.\n\n##### Socks5Proxy (default: )\nSpecify a socks5 proxy which is used to get AUR package information.\n\nThe format is `[host[:port]]`, and the default port is 1080.\nPySocks module (`python-pysocks` package) should be installed in order to use this option.\n\nNote that any downloads by `pacman`, `git` or `makepkg` will NOT use this proxy.\nIf that's needed, setting proxy options in their own config files will take effect\n(such as `~/.gitconfig`, `~/.curlrc`).\n\n##### AurHttpProxy (default: )\nSpecify a HTTP proxy which is used to get AUR package information and to `git`-clone from AUR.\n\nNote that any downloads by `pacman`, `git` (inside the build) or `makepkg` will NOT use this proxy.\nIf that's needed, setting proxy options in their own config files will take effect\n(such as `env HTTP_PROXY=`, `~/.gitconfig`, `~/.curlrc`).\n\n##### AurHttpsProxy (default: )\nSpecify a HTTPS proxy which is used to get AUR package information and to `git`-clone from AUR.\n\nNote that any downloads by `pacman`, `git` (inside the build) or `makepkg` will NOT use this proxy.\nIf that's needed, setting proxy options in their own config files will take effect\n(such as `env HTTPS_PROXY=`, `~/.gitconfig`, `~/.curlrc`).\n\n\n\n## FAQ\n\n\n##### How to upgrade all the dev (-git) packages at once?\n\n`pikaur -Sua --devel --needed`\n\n(`--needed` option will make sure what the same package version won't be rebuilt again and `-a/--aur` will ensure what only AUR packages will be upgraded)\n\n\n##### How to manually remove unneeded dependencies?\n\nPikaur is not needed for that, use just Pacman itself:\n\n`sudo pacman -Rs $(pacman -Qtdq)` (however `pikaur -Rs ...` would work as well if you lazy to type `sudo` :) )\n\n\n##### How to override default source directory, build directory or built package destination?\n\nSet `SRCDEST`, `BUILDDIR` or `PKGDEST` accordingly in `makepkg.conf`.\n\nFor more info see `makepkg` documentation.\n\n\n##### How to clean old or uninstalled AUR packages in ~/.cache/pikaur/pkg?\n\nUse `paccache(8)` with the `--cachedir` option.\n\nTo clean them up automatically, you may:\n\n- use a pacman hook.  Start with the provided\n  Copy `/usr/share/pikaur/examples/pikaur-cache.hook` to\n  `/usr/share/libalpm/hooks/pikaur-cache-cleanup.hook`,\n  remember to update the cache's path.\n\n- use a systemd service & timer (provided `pikaur-cache.service` and\n  `pikaur-cache.timer`).  Configure it with `systemctl --user edit\n  --full pikaur-cache.service` and activate it with `systemctl --user\n  enable --now pikaur-cache.timer`.\n\n\n##### How to restore original PKGBUILD after editing?\n\nGo to the package's directory, `cd ~/.local/share/pikaur/aur_repos/${PACKAGE_NAME}`.\nReview the current PKGBUILD file changes with `git diff` and then reset with  `git checkout -- '*'`.\n\n\n##### How to see upgrade list without syncing the database? (like \"checkupdates\" tool from pacman)\n\nActually use `checkupdates` tool to check the repo updates and use pikaur only for AUR (`-a`/`--aur` switch):\n\n```\ncheckupdates ; pikaur -Qua 2>/dev/null\n```\n\n##### Pikaur slow when running it as root user (or via sudo)\n\nIf you find the command takes a long time to initialize, make sure to periodically clear your cache: `pikaur -Scc`. Root pikaur is using SystemD Dynamic Users to isolate build process from the root, and it takes some time to change the owner of build cache to dynamic temporary user.\n\n##### How to migrate from Yay?\n\nThis will migrate the cache of what AUR packages have been installed, so you can still see a Git diff for the next update of each package:\n\n```sh\nmv ~/.cache/yay/* ~/.local/share/pikaur/aur_repos/\nfind ~/.local/share/pikaur/aur_repos -mindepth 1 -maxdepth 1 -type d | xargs -r -I '{}' -- sh -c 'cd \"{}\" && git rev-parse HEAD > last_installed.txt'\n```\n\n##### How to downgrade a package?\n\nThis will show a list of commits to choose one to downgrade to.\n\n```sh\npikaur -G <package>  # retrieve package sources\ncd <package>\ngit log  # choose <commit> from the list\ngit checkout <commit>\npikaur -Pi  # build and install older version\n```\n\n##### How to add additional trusted keys when building with systemd dynamic users?\nWhen using systemd dynamic users, by default, there is not a persistent user or gpg home directory. You can set the path to a persistent gpg home directory using the cli argument `--build_gpgdir`. Alternatively, you can set a permanent default with the configuration option `[build] gpgdir` in the root pikaur configuration file `/root/.config/pikaur.conf` The below example configures makepkg to use a hypothetical gpg home directory at `/etc/pikaur.d/gnupg` when validating source files.\n\n```ini\n[build]\ngpgdir=/etc/pikaur.d/gnupg\n```\n\nYou can initialize a minimal gnupghome at the example path by executing the below commands as root.\n\n```sh\nexport GNUPGHOME=\"/etc/pikaur.d/gnupg\"\nmkdir -p \"${GNUPGHOME}\"\ngpg --batch --passphrase '' --quick-gen-key \"pikaur@localhost\" rsa sign 0\n```\n\n## Contributing\n\n\n### Code\n\nYou can start from [this list of issues](https://github.com/actionless/pikaur/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22 \"\"). Grep-ing `@TODO` comments also useful if you're itching to write something.\n\n#### Running CI locally\n\n##### Linters (code quality check)\n\n```sh\n./maintenance_scripts/lint.sh\n```\n\n##### Tests\n\n```sh\n./maintenance_scripts/docker_test.sh\n```\n\nSee also `./maintenance_scripts/docker_test.sh --help` for more options.\n\n\n### Translations\n\nTo start working on a new language, say `hi_IN` (Indian Hindi), add it to the\n`Makefile` `LANGS` variable and run `make`. Then translate `locale/hi_IN.po` using\nyour favorite PO editor. Run `make` every time the Python code strings change\nor the `.po` is modified.\n\n\n\n## Authors\n\nTo see the list of authors, use this command inside pikaur git repository directory:\n\n```sh\ngit log --pretty=tformat:\"%an <%ae>\" | sort -u\n```\n\n### Special thanks\n\n@AladW ([aurutils](https://github.com/AladW/aurutils)), @morganamilo ([yay](https://github.com/Jguer/yay)) during the early stages of Pikaur development.\nAnd [all the other issue contributors](https://github.com/actionless/pikaur/issues?utf8=%E2%9C%93&q=is%3Aissue+-author%3Aactionless) for helping in triaging the bugs and clearing up feature requirements.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "AUR helper with minimal dependencies",
    "version": "1.19",
    "project_urls": {
        "repository": "https://github.com/actionless/pikaur"
    },
    "split_keywords": [
        "arch",
        " aur",
        " helper",
        " linux"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bee9cd5db0905016c51d6f3db15b7c8ab7fd0e2386b5426fc38acdc453d2021a",
                "md5": "cfed543648bca4e713f20f6495e4efbc",
                "sha256": "1bdf4a4a40279c1fa6f34568a3af40354bb67057797252a1b5b4a2555041a825"
            },
            "downloads": -1,
            "filename": "pikaur-1.19-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "cfed543648bca4e713f20f6495e4efbc",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.11",
            "size": 128650,
            "upload_time": "2024-04-05T00:47:55",
            "upload_time_iso_8601": "2024-04-05T00:47:55.627486Z",
            "url": "https://files.pythonhosted.org/packages/be/e9/cd5db0905016c51d6f3db15b7c8ab7fd0e2386b5426fc38acdc453d2021a/pikaur-1.19-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-05 00:47:55",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "actionless",
    "github_project": "pikaur",
    "travis_ci": false,
    "coveralls": true,
    "github_actions": true,
    "lcname": "pikaur"
}
        
Elapsed time: 0.23257s