CARVIEW |
Select Language
HTTP/2 200
date: Wed, 30 Jul 2025 22:36:54 GMT
content-type: text/html; charset=utf-8
vary: X-PJAX, X-PJAX-Container, Turbo-Visit, Turbo-Frame, X-Requested-With,Accept-Encoding, Accept, X-Requested-With
etag: W/"f50b0c7f5be277f1b2be35ffe580b0f0"
cache-control: max-age=0, private, must-revalidate
strict-transport-security: max-age=31536000; includeSubdomains; preload
x-frame-options: deny
x-content-type-options: nosniff
x-xss-protection: 0
referrer-policy: no-referrer-when-downgrade
content-security-policy: default-src 'none'; base-uri 'self'; child-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/; connect-src 'self' uploads.github.com www.githubstatus.com collector.github.com raw.githubusercontent.com api.github.com github-cloud.s3.amazonaws.com github-production-repository-file-5c1aeb.s3.amazonaws.com github-production-upload-manifest-file-7fdce7.s3.amazonaws.com github-production-user-asset-6210df.s3.amazonaws.com *.rel.tunnels.api.visualstudio.com wss://*.rel.tunnels.api.visualstudio.com objects-origin.githubusercontent.com copilot-proxy.githubusercontent.com proxy.individual.githubcopilot.com proxy.business.githubcopilot.com proxy.enterprise.githubcopilot.com *.actions.githubusercontent.com wss://*.actions.githubusercontent.com productionresultssa0.blob.core.windows.net/ productionresultssa1.blob.core.windows.net/ productionresultssa2.blob.core.windows.net/ productionresultssa3.blob.core.windows.net/ productionresultssa4.blob.core.windows.net/ productionresultssa5.blob.core.windows.net/ productionresultssa6.blob.core.windows.net/ productionresultssa7.blob.core.windows.net/ productionresultssa8.blob.core.windows.net/ productionresultssa9.blob.core.windows.net/ productionresultssa10.blob.core.windows.net/ productionresultssa11.blob.core.windows.net/ productionresultssa12.blob.core.windows.net/ productionresultssa13.blob.core.windows.net/ productionresultssa14.blob.core.windows.net/ productionresultssa15.blob.core.windows.net/ productionresultssa16.blob.core.windows.net/ productionresultssa17.blob.core.windows.net/ productionresultssa18.blob.core.windows.net/ productionresultssa19.blob.core.windows.net/ github-production-repository-image-32fea6.s3.amazonaws.com github-production-release-asset-2e65be.s3.amazonaws.com insights.github.com wss://alive.github.com wss://alive-staging.github.com api.githubcopilot.com api.individual.githubcopilot.com api.business.githubcopilot.com api.enterprise.githubcopilot.com; font-src github.githubassets.com; form-action 'self' github.com gist.github.com copilot-workspace.githubnext.com objects-origin.githubusercontent.com; frame-ancestors 'none'; frame-src viewscreen.githubusercontent.com notebooks.githubusercontent.com; img-src 'self' data: blob: github.githubassets.com media.githubusercontent.com camo.githubusercontent.com identicons.github.com avatars.githubusercontent.com private-avatars.githubusercontent.com github-cloud.s3.amazonaws.com objects.githubusercontent.com release-assets.githubusercontent.com secured-user-images.githubusercontent.com/ user-images.githubusercontent.com/ private-user-images.githubusercontent.com opengraph.githubassets.com copilotprodattachments.blob.core.windows.net/github-production-copilot-attachments/ github-production-user-asset-6210df.s3.amazonaws.com customer-stories-feed.github.com spotlights-feed.github.com objects-origin.githubusercontent.com *.githubusercontent.com; manifest-src 'self'; media-src github.com user-images.githubusercontent.com/ secured-user-images.githubusercontent.com/ private-user-images.githubusercontent.com github-production-user-asset-6210df.s3.amazonaws.com gist.github.com; script-src github.githubassets.com; style-src 'unsafe-inline' github.githubassets.com; upgrade-insecure-requests; worker-src github.githubassets.com github.com/assets-cdn/worker/ github.com/assets/ gist.github.com/assets-cdn/worker/
server: github.com
content-encoding: gzip
accept-ranges: bytes
set-cookie: _gh_sess=fZRE7N2hSSKZUcHCugAaZobyRiTzkdwEaXqvE%2BuMtW6p12OzJ7O3fmYXqIhfn6eYQ%2B0Eu9L5zN1BUKCs0GGRNZc3yHDlRAlaawGXdMHukyO8g03B%2FcqUnlPik2jMdssM4W8t%2Bw9OOWl%2BvMfiTQGd87rHkuYDa8Y9IUA5ViAn3ZcbbDSObY4PaGjfc3ELQ0wg1xiigvcymgnehQD5VipYksRyVmgnDYtShlx32cr8StOp4WZeXIs7IU4Cv%2F%2BGYHGmyYjbW58uVosbeoMk3jMl2A%3D%3D--zuWSfy844lBskpiU--ldAgbBC6u6LXY%2BFe%2F1IMbQ%3D%3D; Path=/; HttpOnly; Secure; SameSite=Lax
set-cookie: _octo=GH1.1.472042184.1753915014; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 22:36:54 GMT; Secure; SameSite=Lax
set-cookie: logged_in=no; Path=/; Domain=github.com; Expires=Thu, 30 Jul 2026 22:36:54 GMT; HttpOnly; Secure; SameSite=Lax
x-github-request-id: DCA0:1E01C6:91E99:D5C11:688A9E86
Pacstall man page format · pacstall/pacstall Wiki · GitHub
Skip to content
Navigation Menu
{{ message }}
-
-
Notifications
You must be signed in to change notification settings - Fork 62
Pacstall man page format
oklopfer edited this page Jul 13, 2025
·
95 revisions
---
title: Pacstall
section: 8
header: General Commands Manual
footer: Pacstall 6.3.4 Icterine
date: July 13, 2025
---
# NAME
Pacstall - The AUR for Ubuntu
# SYNOPSIS
**pacstall -V**
**pacstall** [**-x**] [**-P -K -B -Q -Nc -Ns**] **-I** *package* ...
**pacstall** [**-S -Sd**] *term*
**pacstall -Si** *package*
**pacstall** [**-P**] **-R** *package* ...
**pacstall -D** *package* ...
**pacstall -A** *repository*
**pacstall -Rr** *repository*
**pacstall -U** [*username branch*]
**pacstall** [**-L -Lu**]
**pacstall** [**-P -K**] **-Up**
**pacstall -M** *package* [**hold unhold**]
**pacstall -Ci** *package* [*key*]
**pacstall -Qa** *package*#*number*(@*metalink*)
**pacstall -T** *package*
# DESCRIPTION
Pacstall is the AUR Ubuntu wishes it had. It takes the AUR and puts a spin on it, making it easier to install programs without scouring github repositories and the likes.
# OPTIONS
**-h**, **\--help**
: Show the help message and exit.
**-I**, **\--install**
: Installs a given package from a repository, or a pacscript. The **-I** flag has the ability to install packages from the following repository providers: *github:*, *gitlab:*, *sourcehut:*, *codeberg:*. Other git providers may use a direct link. These must be added beforehand to the repository list with **-A**/**--add-repo**. If multiple repositories are enabled, **pacstall** will default to **pacstall/pacstall-programs**, but you can still choose to install from another repository. You can also specify a local pacscript by including the '.pacscript' suffix. The following are valid examples of the **-I** flag:
>> $ **pacstall -I neofetch** # Install **neofetch**
>> $ **pacstall -I** "**alacritty**@*github*:*user*/*reponame*" # Install **alacritty** from <**https://github.com/user/reponame**>
>> $ **pacstall -I** "**alacritty**@**https://raw.githubusercontent.com/user/reponame/master** # Install **alacritty** from the raw link
>> $ **pacstall -I** "**alacritty**@**myrepo** # Install **alacritty** from the @**myrepo** alias
>> $ **pacstall -I neofetch.pacscript** # Install **neofetch** from local pacscript
>> $ **pacstall -I ${parent}:pkgbase** # Install all pkgnames in the pkgbase named **parent**
>> $ **pacstall -I ${parent}:${child}** # Install only the pkgname **child** from the pkgbase **parent**
>> $ **pacstall -I package.pacscript:${child}** # Install only the pkgname **child** from a local split package
**-R**, **\--remove**
: Removes a given package from system. For example:
>> $ **pacstall -R** *neofetch*
**-S**, **\--search**
: Searches for a given package from all available repositories. A clickable hyperlink to the repositories containing the packages are displayed in VTE terminals. Other repositories can be added using the **-A** flag. To search in a specific repository, use the **@** separator.
>> $ **pacstall -S** *-git* # search for all git packages
>> $ **pacstall -S** *-bin*@*github*:*user*/*reponame*" # search for all binary packages from <**https://github.com/user/reponame**>
**-Sd**, **\--search-description**
: Like search, but both displays descriptions on output, and searches through descriptions upon the query. To do a case-sensitive search, use quotes within quotes ("''" or '""').
>> $ **pacstall -Sd** *browser* # search for all packages which have browser in their name or description
>> $ **pacstall -Sd** *"'Browser'"* # search for all packages which have Browser in their description
**-Si**, **\--search-info**
: Display metadata (SRCINFO) of a remote package. Only accepts real package names.
>> $ **pacstall -Si neofetch** # Search **neofetch** info
>> $ **pacstall -Si** "**alacritty**@*github*:*user*/*reponame*" # Search **alacritty** info from <**https://github.com/user/reponame**>
>> $ **pacstall -Si** "**alacritty**@**https://raw.githubusercontent.com/user/reponame/master** # Search **alacritty** info from the raw link
>> $ **pacstall -Si ${parent}:pkgbase** # Search all pkgnames in the pkgbase named **parent**
>> $ **pacstall -Si ${parent}:${child}** # Search only the pkgname **child** from the pkgbase **parent**
**-A**, **\--add-repo**
: Add a given repository to **pacstall**. If a plain GitHub or GitLab link is given without a *branch*, **pacstall** will default to **master**, but you can specify a *branch*. Local repositories are also supported, which can be useful for testing pacscripts without pushing remotely, having a portable repository on a USB stick, custom/private applications, etc. Additionally, an alias can optionally be linked to an added repository, so that it is easier to search and install from. The following commands are valid ways to add a repository:
>> $ **pacstall -A https://github.com**/*user*/*repo*
>> $ **pacstall -A https://github.com**/*user*/*repo*/**tree**/*branch*
>> $ **pacstall -A github:user/repo**
>> $ **pacstall -A github:user/repo#branch**
>> $ **pacstall -A github:user/repo** @*alias*
>> $ **pacstall -A https://gitlab.com**/*user*/*repo*
>> $ **pacstall -A https://gitlab.com**/*user*/*repo*/**-**/**tree**/*branch*
>> $ **pacstall -A https://raw.githubusercontent.com**/*user*/*repo*/*master*
>> $ **pacstall -A https://gitlab.com**/*user*/*repo*/**-**/**raw**/*master* *\@myrepo*
>> $ **pacstall -A gitlab:user/repo**
>> $ **pacstall -A gitlab:user/repo#branch**
>> $ **pacstall -A sourcehut:user/repo**
>> $ **pacstall -A sourcehut:user/repo#branch**
>> $ **pacstall -A codeberg:user/repo**
>> $ **pacstall -A codeberg:user/repo#branch**
>> $ **pacstall -A file:///home/user/local-repository**
>> $ **pacstall -A /home/user/local-repository**
>> $ **pacstall -A local:/home/user/local-repository**
>> $ **pacstall -A https://myonlinerepository.com/directory_containing_packagelist** *\@myrepo*
**-Rr**, **\--remove-repo**
: Remove a given repository from **pacstall**. See *-A*, *\--add-repo* for syntax usage, swapping *-A* with *-Rr*. Passing just an alias can also prompt it to be removed:
>> $ **pacstall -Rr *\@myrepo*
**-U**, **\--update**
: Updates **pacstall** and needed scripts. Arguments to this flag are as follows: The *first* flag is the *username*, while the *second* flag is the *branch*. The second argument is optional as long as the first argument is given, however both the first and second arguments are optional together. If no argument for the *branch* is given, it will default to **master**.
When updating to a specific repository, the arguments used will be saved so that the next time the **-U** flag is used, if no arguments are given, **pacstall** will update through the same user and branch. If there is a typo in *username* or *branch*, **pacstall** will not update, and your current state will not be touched. You may also replace the *username* and *branch* arguments with a *.*, which will update from a local Pacstall repository.
The following are valid examples:
>> $ **pacstall -U** *pacstall* *develop* # This will update pacstall from <**https://github.com/pacstall/pacstall/tree/develop**>
>> $ **pacstall -U** *pacstall*:*develop* # This will update pacstall from <**https://github.com/pacstall/pacstall/tree/develop**>
>> $ **pacstall -U** # This will update pacstall from <**https://github.com/pacstall/pacstall/tree/develop**>, because the previous arguments were saved
>> $ **pacstall -U** *user* # This will update pacstall from <**https://github.com/user/pacstall/tree/master**>
>> $ **pacstall -U .** # This will update pacstall from a local Pacstall repository
**-Up**, **\--upgrade**
: Upgrade packages that have a newer version.
**-L**, **\--list**
: List installed packages.
**-Lu**, **\--list-upgrades**
: List available upgrades for packages.
**-T**, **\--tree**
: Display a tree graph of a package.
**-V**, **\--version**
: Lists **pacstall** version and name.
**-D**, **\--download**
: Download pacscript to current directory. You can specify an arbitrary repository like so:
>> $ **pacstall -D neofetch**@*user*/*reponame* # This downloads the neofetch pacscript from <**https://github.com/user/reponame**>
**-M**, **\--mark**
: Prevent an installed package from being checked for upgrades. The hold will then remain until this command is used on the package, or if the package is manually reinstalled or upgraded. Used like so:
>> $ **pacstall -M** *neofetch* *hold* # marks neofetch to be held from upgrades
>> $ **pacstall -M** *neofetch* *unhold* # marks neofetch to check for upgrades again
**-Ci**, **\--cache-info**
: Display metadata of an installed package. Supply a key from the output to get it's value, or no key to get all values. If a key has spaces in it, replace them with an underscore. For example:
>> $ **pacstall -Ci** *neofetch* *install_type*
>> $ **pacstall -Ci** *alacritty*
**-Qa**, **\--quality-assurance**
: Test a package from a PR downstream, before it is merged. Used like:
>> $ **pacstall -Qa** *firefox-bin*#*5853*
>> $ **pacstall -Qa** *firefox-bin*#*5853*@*github:pacstall/pacstall-programs*
>> $ **pacstall -Qa** *firefox-bin*@*github:pacstall/pacstall-programs*#*5853*
: Where the *package* is given first, followed by the pull request *NUM*, separated by a *#*.
: Optionally, a *metalink* separated by a *@* may be provided before or after the *#NUM*.
: The *metalink* is broken down into 3 parts: *provider*, *owner*, and *repo*.
: The *owner* should be the owner of the repository the PR is being merged into, *not* the user who created the PR.
: No other flags should be provided to this command.
**-P**, **\--disable-prompts**
: Add this flag alongside other commands to disable prompts and accept all defaults. For example:
>> $ **pacstall -PR** *neofetch*
**-K**, **\--keep**
: Add this flag alongside **-I** and **-Up** to keep the build of a package if the build process fails or succeeds.
**-B**, **\--build-only**
: Add this flag alongside **-I** and **-Up** to just build the deb, and not install.
**-Q**, **\--quiet**
: Add this flag alongside **-I** and **-Up** to silence downloading.
**-Nc**, **\--nocheck**
: Add this flag alongside **-I** and **-Up** to skip the check() function when building.
**-Ns**, **\--nosandbox**
: Add this flag alongside **-I** and **-Up** to build without bwrap. This flag should be used with caution, and can lead to potential unwanted harm on a system. It is intended for use in environments such as chroot which have other levels of isolation.
**-x**, **\--debug**
: Add this flag alongside other commands to produce a verbose debug output for Pacstall's execution. Must be separate and used as the first argument. For example:
>> $ **pacstall -x -I** *foobar* # produce debug output directly to terminal
>> $ BASH_XTRACEFD=3 **pacstall -x -I** *foobar* 3>*/tmp/pac-debug.log* # produce debug output to external file
# ENVIRONMENT
**DISABLE_PROMPTS**
: Equivalent of the **-P** flag.
**PACSTALL_SUPPRESS_SOLUTIONS**
: Set this to remove suggestions given by Pacstall to fix problems.
**PACSTALL_BUILD_CORES**
: Set this to an integer to override the `nproc` command and `${NCPU}` variable in any Pacscript.
**PACSTALL_EDITOR**
: Sets the editor used by pacstall.
**PACSTALL_DOWNLOADER**
: Sets the downloading tool used. Can be set to `axel`, `wget`, `quiet-wget`, or `curl`.
**PACSTALL_PAYLOAD**
: Sets the path to a pre-downloaded package archive or archives to be used in place of `source` downloads. Multiple files should be listed in a single string, using `;:` as the separator.
**PACSTALL_TMPDIR**
: Sets the path to perform downloads, extractions, and builds. Should always be defined **without** a trailing (ending) slash. Defaults to `/tmp` if not specified.
**NO_COLOR**
: Turns off all colors.
# FILES
**/usr/share/pacstall/repo/pacstallrepo**
: Repository database.
**/usr/share/pacstall/repo/update**
: Saved arguments used by the **-U** flag.
**/usr/share/pacstall/scripts**
: Assorted scripts used by **pacstall** to operate.
# BUGS
If you find any bugs in Pacstall itself, please submit a bug request at <**https://github.com/pacstall/pacstall/issues**>.
If you find any bugs in a Pacscript, please submit a bug request at <**https://github.com/pacstall/pacstall-programs/issues**>.
The main method Pacstall developers and users uses to communicate with each other is through Discord, but you may also communicate through GitHub issues.
# AUTHORS
The Pacstall team (pacstall@pm.me)
- Elsie19
- wizard-28
- D-Brox
- saenai255
- oklopfer
- 0oAstro
# SEE ALSO
**pacstall(5)**
---
title: Pacstall
section: 5
header: File Management Manual
footer: Pacstall 6.3.4 Icterine
date: July 13, 2025
---
# NAME
Pacstall - Management Files
# SYNOPSIS
pacstallrepo - repository management file
update - update management file
# DESCRIPTION
This manual page describes the format of the pacstallrepo and update file. These are
simple text files which contain newline separated information.
# OPTIONS
## pacstallrepo
There is one optional component and one required component:
> *url* *\@alias*
Where **alias** is optional.
**url**
This is the raw url to a git repository.
This should *not* end in **.git**. This *should* normally end in **user/reponame**.
**alias**
This takes the form of **\@alias** where **alias** can be anything
alphanumeric. This would be useful if you wanted to do something like
**pacstall -I** pkg@pacstall vs **pacstall -I pkg@enhanced** where
**pacstall** is the official repository and **enhanced** is your
repository with additional modifications, instead of **pacstall -I**
pkg@github:pacstall/pacstall-programs and **pacstall -I**
pkg@github:me/pacstall-enhanced-repo, or other various long links.
## update
Usually this file does not need to be manually updated. If **pacstall -U .** on a
local repository is run, it will be set to **pacstall master**. This is
the format the update file takes:
> *username* *branch*
**username**
Since Pacstall is hosted on GitHub, the update file does not support
anything except GitHub, and **username** will take the username where a
repository named **pacstall** is created inside.
**branch**
This is the branch name, usually master.
# FILES
/usr/share/pacstall/repo/pacstallrepo
/usr/share/pacstall/repo/update
# SEE ALSO
**pacstall(8)**
Write the first to misc/man/pacstall8.md
, and the second to misc/man/pacstall5.md
. Then run:
# cd misc/man
pandoc --standalone --to man pacstall8.md -o pacstall.8
pandoc --standalone --to man pacstall5.md -o pacstall.5
rm -f pacstall5.md pacstall8.md
# cd ..
To update misc/po/pacstall.pot
(when new fancy_message
s are added):
heading=('#, fuzzy' 'msgid ""' 'msgstr ""' '"MIME-Version: 1.0\n"' '"Content-Type: text/plain; charset=UTF-8\n"' '"Content-Transfer-Encoding: ENCODING\n"' '"Plural-Forms: nplurals=2; plural=n != 1;\n"')
printf '%s\n' "${heading[@]}" > misc/po/pacstall.pot
for i in pacstall misc/scripts/*.sh; do
bash --dump-po-strings "${i}" >> misc/po/pacstall.pot
done
msguniq misc/po/pacstall.pot -o misc/po/pacstall.pot
You can’t perform that action at this time.