User Docs 📚
Commands

Commands

This is a shortform list of every command and optional flag for pacstall. Below this list you will find further explanations for each of the commands and optional flags, as well as for environment variables.

# Overview
pacstall [-h] {-I,-S,-R,-D,-A,-Rr,-U,-L,-Up,-Qa,-Sd,-Si,-Ci,-T,-V} [-P] [-K] [-B] [-Nc] [-Q] [-Ns]
 
# Commands
-I, --install [package]
    ~> Install a package.
-S, --search [package]
    ~> Search for a package.
-R, --remove [package]
    ~> Remove a package.
-D, --download [package]
    ~> Download a pacscript.
-A, --add-repo [repo]
    ~> Add a repository.
-Rr, --remove-repo [repo]
    ~> Remove a repository.
-U, --update [user] [branch]
    ~> Update Pacstall.
-L, --list
    ~> List all installed packages.
-Up, --upgrade
    ~> Upgrade all installed packages.
-Qa, --quality-assurance [package]#[number]
    ~> Test a package PR from downstream. Optional: @[provider]:[owner]/[repo]
-Sd, --search-description [package]
    ~> Search for a package or description keyword.
-Si, --search-info [package]
    ~> Query information about a remote package.
-Ci, --cache-info [package]
    ~> Query information about an installed package.
-T, --tree [package]
    ~> Display a tree graph of an installed package.
-V, --version
    ~> Display the version number.
-h, --help
    ~> Display this help message.
 
# Options
-P, --disable-prompts
    ~> Disable prompts.
-K, --keep
    ~> Keep the build files.
-B, --build-only
    ~> Build the deb but do not install.
-Nc, --nocheck
    ~> Skip the check() function if present.
-Q, --quiet
    ~> Download package entries quietly.
-Ns, --nosandbox
    ~> Build the package without bwrap.

Commands

-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 the 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 is 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. See here for information on how this is stored.

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. See here for information on how this is stored.

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 the 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 . to 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.

-T, --tree

Display a tree graph of a package.

-V, --version

Lists pacstall version and name.

-D, --download

Download pacscript to the current directory. You can specify an arbitrary repository like so:

$ pacstall -D neofetch@github:user/reponame  # This downloads the neofetch pacscript from https://github.com/user/reponame

-Ci, --cache-info

Display metadata of an installed package. Supply a key from the output to get its 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 three 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.

Options

-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.

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. Provide multiple paths in a single string by separating with ;:.

NO_COLOR

Turns off all colors.