ABS(7) ====== :doctype: manpage :man source: ABS :man manual: ABS Manual :man version: %%ABS_VERSION%% Name ---- ABS - the Arch Build System Description ----------- The 'Arch Build System', or *ABS*, is a ports-like system for building binary packages from source code. With a collection of tools for package creation and management, it provides a complete package management system for *Arch Linux*. Typically, the process of building a program from source code would consist of downloading, unpacking, patching, compiling, and installing the program. Of course a few key steps were left out, such as building the required dependencies and configuring the software for your system. The *ABS* does 'all' of this for you! And it also creates a package that can be installed and tracked via *pacman*(8). To build a package from source code, the ABS uses *makepkg*(8) and a *PKGBUILD*(5). '`makepkg`' is a package creation tool that automates the build process, and a '`PKGBUILD`' is a build description file that contains the information necessary for building the package. When run, `makepkg` reads the PKGBUILD in the current directory, or the build script given with the `-p` option, and follows the instructions therein to build the package. This will result in *`<pkgname>-<pkgver>.pkg.tar.xz`*, which can then be installed with *`pacman`*. *abs*(8) is the utility that facilitates building packages from source code. It utilizes the other package management tools to accomplish its function. Overview -------- *abs*:: Fetches and creates the directory tree of PKGBUILDs for the official repositories. This hierarchy of directories is known as the *``ABS tree''* and has the same structure as the package database. It is created under '%%ABS_ROOT%%'. *makepkg*:: Compiles and builds a package that can be installed with `pacman`. Dependency handling is built-in and can be controlled through command-line options. A PKGBUILD is required to provide the build instructions. *pacman*:: The official package manager for 'Arch Linux'. Install or update a package after it is built by running either *`pacman -U <pkg>`* or *`makepkg -i`*. *PKGBUILD*:: A build description file that contains the URL of the source code as well as instructions for compilation and packaging. Files ----- *%%ABS_CONF_FILE%%*:: ABS tree configuration file. *%%PACMAN_CONF_DIR%%/makepkg.conf*:: Build related configuration file. *%%PACMAN_CONF_DIR%%/pacman.conf*:: Package management configuration file. See Also -------- *abs*(8), *makepkg*(8), *pacman*(8), *PKGBUILD*(5), *abs.conf*(5), *makepkg.conf*(5), *pacman.conf*(5) include::footer.txt[]