makepkg

From ArchWiki

Jump to: navigation, search
Article summary
An overview of Arch Linux's package build utility.
Available in languages
English
Italiano
Ελληνικά
简体中文
Русский
Türkçe
Nederlands
Related articles
Arch Build System
Arch User Repository
Building Packages
makepkg.conf
pacman
PKGBUILD
External links
AUR
makepkg(8) Manual Page

makepkg is used for compiling and building packages suitable for installation with pacman, Arch Linux's package manager. makepkg is a script that automates the building of packages; it can download and validate source files, check dependencies, configure build-time settings, compile the sources, install into a temporary root, make customizations, generate meta-info, and package everything together.

Configuration

To be able to install dependencies with makepkg as an unprivileged user (with makepkg -s, see below) install sudo and add desired users to /etc/sudoers:

USER_NAME    ALL=(ALL)    NOPASSWD: /usr/bin/pacman

The above will negate the need to enter a password with pacman. See the sudo wiki article for detailed information.

Next, one can configure where finished packages should be placed. This step is optional; packages will be created in the working directory where makepkg is run by default.

Create the directory:

$ mkdir /home/$USER/packages

Then modify the PKGDEST variable in /etc/makepkg.conf accordingly.

/etc/makepkg.conf is the main configuration file for makepkg. Most users will wish to fine-tune makepkg configuration options prior to building any packages. (For example, modifying the MAKEFLAGS variable on SMP systems for a reduction in compile times, or modifying the PACKAGER variable to personalize packages.) See makepkg.conf for detailed information.

Usage

Before continuing, ensure the "base-devel" group is installed. Packages belonging to this group are not required to be listed as dependencies in PKGBUILD files. Install the "base-devel" group by issuing (as root):

# pacman -Sy base-devel
Note: Before complaining about missing (make)dependencies, remember that the "base" group is assumed to be installed on all Arch Linux systems. The group "base-devel" is assumed to be installed when building with makepkg.

To build a package, one must first create a PKGBUILD, or build script, as described in Building Packages, or obtain one from the Arch Build System, Arch User Repository, or some other source.

Warning: Only build/install packages from trusted sources.

Once in possession of a PKGBUILD, change to the directory where it is saved and issue the following command to build the package described by said PKGBUILD:

$ makepkg

If required dependencies are missing, makepkg will issue a warning before failing. To build the package and install needed dependencies automatically, simply use the command:

$ makepkg -s

Note that these dependencies must be available in the configured repositories; see pacman#Repositories for details. Alternatively, one can manually install dependencies prior to building (pacman -Sy dep1 dep2).

Once all dependencies are satisfied and the package builds successfully, a package file (pkgname-pkgver.pkg.tar.gz) will be created in the working directory. To install, run (as root):

# pacman -U pkgname-pkgver.pkg.tar.gz
Personal tools