MAN-J
Man PagesPricing
LoginGet Started
makepkg(8)
Original
English • 411 lines
MAKEPKG(8)			 Pacman Manual			    MAKEPKG(8)

NAME
       makepkg - package build utility

SYNOPSIS
       makepkg [options] [ENVVAR=value] [ENVVAR+=value] ...

DESCRIPTION
       makepkg is a script to automate the building of packages. The
       requirements for using the script are a build-capable *nix platform and
       a custom build script for each package you wish to build (known as a
       PKGBUILD). See PKGBUILD(5) for details on creating your own build
       scripts.

       The advantage to a script-based build is that the work is only done
       once. Once you have the build script for a package, makepkg will do the
       rest: download and validate source files, check dependencies, configure
       the build-time settings, build the package, install the package into a
       temporary root, make customizations, generate meta-info, and package
       the whole thing up for pacman to use.

	   Note

	   makepkg uses your current locale by default and does not unset it
	   when building packages. If you wish to share your build output with
	   others when seeking help or for other purposes, you may wish to run
	   "LC_ALL=C makepkg" so your logs and output are not localized.

OPTIONS
       -A, --ignorearch
	   Ignore a missing or incomplete arch field in the build script. This
	   is for rebuilding packages from source when the PKGBUILD may be
	   slightly outdated and not updated with an arch=('yourarch') field.

       -c, --clean
	   Clean up leftover work files and directories after a successful
	   build.

       --config <file>
	   Use an alternate configuration file instead of the
	   /etc/makepkg.conf default.

       -d, --nodeps
	   Do not perform any dependency checks. This will let you override
	   and ignore any dependencies required. There is a good chance this
	   option will break the build process if all of the dependencies are
	   not installed.

       -e, --noextract
	   Do not extract source files or run the prepare() function (if
	   present); use whatever source already exists in the $srcdir/
	   directory. This is handy if you want to go into $srcdir/ and
	   manually patch or tweak code, then make a package out of the
	   result. Keep in mind that creating a patch may be a better solution
	   to allow others to use your PKGBUILD.

       --verifysource
	   For each source file in the source array of PKGBUILD, download the
	   file if required and perform the integrity checks. No extraction or
	   build is performed. Dependencies specified in the PKGBUILD will not
	   be handled unless --syncdeps is used. Useful for performing
	   subsequent offline builds.

       -f, --force
	   makepkg will not build a package if a built package already exists
	   in the PKGDEST (set in makepkg.conf(5)) directory, which may
	   default to the current directory. This allows the built package to
	   be overwritten.

       -g, --geninteg
	   For each source file in the source array of PKGBUILD, download the
	   file if required and generate integrity checks. The integrity
	   checks generated are determined by the checks present in the
	   PKGBUILD, falling back to the value of the INTEGRITY_CHECK array in
	   makepkg.conf(5) if these are absent. This output can be redirected
	   into your PKGBUILD for source validation using "makepkg -g >>
	   PKGBUILD".

       --skipinteg
	   Do not perform any integrity checks (checksum and PGP) on source
	   files.

       --skipchecksums
	   Do not verify checksums of source files.

       --skippgpcheck
	   Do not verify PGP signatures of source files.

       -h, --help
	   Output syntax and command line options.

       --holdver
	   When using VCS sources (PKGBUILD(5)) any currently checked out
	   source will not be updated to the latest revision.

       -i, --install
	   Install or upgrade the package after a successful build using
	   pacman(8).

       -L, --log
	   Enable logging. This will use the tee program to send the output of
	   each of the PKGBUILD functions to both the console and to a text
	   file in the build directory named
	   pkgbase-pkgver-pkgrel-arch-<function>.log. As mentioned above, the
	   logs will be localized so you may want to set your locale
	   accordingly if sharing the log output with others.

       -m, --nocolor
	   Disable color in output messages.

       -o, --nobuild
	   Download and extract files, run the prepare() function, but do not
	   build them. Useful with the --noextract option if you wish to tweak
	   the files in $srcdir/ before building.

       -p <buildscript>
	   Read the package script buildscript instead of the PKGBUILD
	   default; see PKGBUILD(5). The buildscript must be located in the
	   directory makepkg is called from.

       -r, --rmdeps
	   Upon successful build, remove any dependencies installed by makepkg
	   during dependency auto-resolution and installation when using -s.

       -R, --repackage
	   Repackage contents of the package without rebuilding the package.
	   This is useful if you forgot, for example, a dependency or install
	   file in your PKGBUILD and the build itself will not change.

       -s, --syncdeps
	   Install missing dependencies using pacman. When build-time or
	   run-time dependencies are not found, pacman will try to resolve
	   them. If successful, the missing packages will be downloaded and
	   installed.

       -S, --source
	   Do not actually build the package, but build a source-only tarball
	   that does not include sources that can be fetched via a download
	   URL. This is useful for passing a single tarball to another program
	   such as a chroot, remote builder, or a tarball upload. Because
	   integrity checks are verified, all source files of the package need
	   to be present or downloadable.

       -V, --version
	   Display version information.

       -C, --cleanbuild
	   Clean build artifacts from previous runs of makepkg in the current
	   directory by removing $srcdir before building the package.

       -D <dir>, --dir <dir>
	   Change to directory <dir> before reading the PKGBUILD or doing
	   anything else.

       --allsource
	   Do not actually build the package, but build a source-only tarball
	   that includes all sources, including those that are normally
	   downloaded via makepkg. This is useful for passing a single tarball
	   to another program such as a chroot or remote builder. It will also
	   satisfy requirements of the GPL when distributing binary packages.

       --check
	   Run the check() function in the PKGBUILD, overriding the setting in
	   makepkg.conf(5).

       --noarchive
	   Do not create the archive at the end of the build process. This can
	   be useful to test the package() function or if your target
	   distribution does not use pacman.

       --nocheck
	   Do not run the check() function in the PKGBUILD or handle the
	   checkdepends.

       --noprepare
	   Do not run the prepare() function in the PKGBUILD.

       --noverify
	   Do not run the verify() function in the PKGBUILD.

       --sign
	   Sign the resulting package with gpg, overriding the setting in
	   makepkg.conf(5).

       --nosign
	   Do not create a signature for the built package.

       --key <key>
	   Specify a key to use when signing packages, overriding the GPGKEY
	   setting in makepkg.conf(5). If not specified in either location,
	   the default key from the keyring will be used.

       --noconfirm
	   (Passed to pacman) Prevent pacman from waiting for user input
	   before proceeding with operations.

       --needed
	   (Passed to pacman) Tell pacman not to reinstall a target if it is
	   already up-to-date. (used with -i / --install).

       --asdeps
	   (Passed to pacman) Install packages as non-explicitly installed
	   (used with -i / --install).

       --noprogressbar
	   (Passed to pacman) Prevent pacman from displaying a progress bar;
	   useful if you are redirecting makepkg output to file.

       --packagelist
	   List the package filenames that would be produced without building.
	   Listed package filenames include PKGDEST and PKGEXT.

       --printsrcinfo
	   Generate and print the SRCINFO file to stdout.

ADDITIONAL FEATURES
       makepkg supports building development versions of packages without
       having to manually update the pkgver in the PKGBUILD. This was formerly
       done using the separate utility versionpkg. See PKGBUILD(5) for details
       on how to set up a development PKGBUILD.

REPRODUCIBILITY
       makepkg is designed to be compatible with Reproducible Builds. If the
       SOURCE_DATE_EPOCH environment variable is set, it will be exported to
       subprocesses, and source and package file modification times and
       package metadata will be unified based on the timestamp specified.

       If the SOURCE_DATE_EPOCH environment variable is not set, makepkg will
       use its own start date for internal use, but will not unify source file
       timestamps before building.

ENVIRONMENT VARIABLES
       MAKEPKG_LIBRARY="/path/to/directory"
	   Use an alternative libmakepkg path instead of the
	   /usr/share/makepkg default.

       PACMAN
	   The command that will be used to check for missing dependencies and
	   to install and remove packages. Pacman’s -Qq, -Rns, -S, -T, and -U
	   operations must be supported by this command. If the variable is
	   not set or empty, makepkg will fall back to ‘pacman’.

       MAKEPKG_CONF="/path/to/file"
	   Use an alternate config file instead of the /etc/makepkg.conf
	   default.

       PKGDEST="/path/to/directory"
	   Directory where the resulting packages will be stored. Overrides
	   the corresponding value defined in makepkg.conf(5).

       SRCDEST="/path/to/directory"
	   Directory where the downloaded sources will be stored. Overrides
	   the corresponding value defined in makepkg.conf(5).

       SRCPKGDEST="/path/to/directory"
	   Directory where source package files will be stored. Overrides the
	   corresponding value defined in makepkg.conf(5).

       LOGDEST="/path/to/directory"
	   Directory where generated log files will be stored. Overrides the
	   corresponding value defined in makepkg.conf(5).

       PACKAGER="John Doe <john@doe.com>"
	   String to identify the creator of the resulting package. Overrides
	   the corresponding value defined in makepkg.conf(5).

       BUILDDIR="/path/to/directory"
	   Directory where the package will be built. Overrides the
	   corresponding value defined in makepkg.conf(5).

       CARCH="(i686|x86_64)"
	   Force build for a specific architecture. Useful for
	   cross-compiling. Overrides the corresponding value defined in
	   makepkg.conf(5).

       PKGEXT=".pkg.tar.gz", SRCEXT=".src.tar.gz"
	   Sets the compression used when making compiled or source packages.
	   Overrides the corresponding value defined in makepkg.conf(5).

       GNUPGHOME="/path/to/directory"
	   Directory where the gpg keyring for signing the built package is
	   stored.

       GPGKEY="keyid"
	   Specify a key to use when signing packages, overriding the GPGKEY
	   setting in makepkg.conf(5).

       SOURCE_DATE_EPOCH="<date>"
	   Used for Reproducible Builds.

       BUILDTOOL="<name>"
	   The name of a tool ecosystem used to set up the build environment.
	   Used for defining a spec for reproducible builds, e.g. the
	   makepkg.conf(5) used.

       BUILDTOOLVER="<version>"
	   The version of the $BUILDTOOL used.

       MAKEPKG_LINT_PKGBUILD=0
	   Setting to 0 disables PKGBUILD linting within makepkg. Useful on
	   systems with slow bash subshell operations, or on PKGBUILDs with
	   extreme amounts of package splitting.

CONFIGURATION
       See makepkg.conf(5) for more details on configuring makepkg using the
       makepkg.conf file.

ERRORS
       On exit, makepkg will return one of the following error codes.

       0
	   Normal exit condition.

       1
	   Unknown cause of failure.

       2
	   Error in configuration file.

       3
	   User specified an invalid option.

       4
	   Error in user-supplied function in PKGBUILD.

       5
	   Failed to create a viable package.

       6
	   A source or auxiliary file specified in the PKGBUILD is missing.

       7
	   The PKGDIR is missing.

       8
	   Failed to install dependencies.

       9
	   Failed to remove dependencies.

       10
	   User attempted to run makepkg as root.

       11
	   User lacks permissions to build or install to a given location.

       12
	   Error parsing PKGBUILD.

       13
	   A package has already been built.

       14
	   The package failed to install.

       15
	   Programs necessary to run makepkg are missing.

       16
	   Specified GPG key does not exist or failed to sign package.

       17
	   The local repository is not a clone of the source repository
	   specified in PKGBUILD.

SEE ALSO
       makepkg.conf(5), PKGBUILD(5), pacman(8)

       See the pacman website at https://archlinux.org/pacman/ for current
       information on pacman and its related tools.

BUGS
       Bugs? You must be kidding; there are no bugs in this software. But if
       we happen to be wrong, please report them to the issue tracker at
       https://gitlab.archlinux.org/pacman/pacman/-/issues with specific
       information such as your command-line, the nature of the bug, and even
       the package database if it helps.

AUTHORS
       Current maintainers:

       •   Allan McRae <allan@archlinux.org>

       •   Andrew Gregory <andrew.gregory.8@gmail.com>

       •   Morgan Adamiec <morganamilo@archlinux.org>

       Past major contributors:

       •   Judd Vinet <jvinet@zeroflux.org>

       •   Aurelien Foret <aurelien@archlinux.org>

       •   Aaron Griffin <aaron@archlinux.org>

       •   Dan McGee <dan@archlinux.org>

       •   Xavier Chantry <shiningxc@gmail.com>

       •   Nagy Gabor <ngaba@bibl.u-szeged.hu>

       •   Dave Reisner <dreisner@archlinux.org>

       •   Eli Schwartz <eschwartz@archlinux.org>

       For additional contributors, use git shortlog -s on the pacman.git
       repository.

Pacman 7.0.0			  2025-06-03			    MAKEPKG(8)

makepkg(8)

makepkg \- package build utility

0popularity

System Information

Pacman 7\&.0\&.0 1.0.0
Updated 2025\-06\-03
Maintained by Unknown

Actions