Man page revision time

Spruce up the asciidoc formatting, fix a few issues that we had. Formatting
now looks pretty good in both the manpage output and the XHTML output.

Also added some options that we have changed since 3.0, and a few wording
updates, etc.

Signed-off-by: Dan McGee <dan@archlinux.org>
This commit is contained in:
Dan McGee 2007-07-16 12:57:02 -04:00
parent d2613b97fa
commit c9189f54cd
6 changed files with 278 additions and 237 deletions

View File

@ -20,7 +20,7 @@ This manual page is meant to describe general rules about PKGBUILDs. Once a
PKGBUILD is written, the actual package is built using makepkg and installed PKGBUILD is written, the actual package is built using makepkg and installed
with pacman. with pacman.
*NOTE:* If you have a local copy of the Arch Build System (ABS) tree on your NOTE: If you have a local copy of the Arch Build System (ABS) tree on your
computer, you can copy the PKGBUILD.proto file to your new package build computer, you can copy the PKGBUILD.proto file to your new package build
directory and edit it from there. To acquire/sync the ABS tree, use the abs directory and edit it from there. To acquire/sync the ABS tree, use the abs
script included with pacman. script included with pacman.
@ -33,14 +33,13 @@ Options and Directives
used in the package filename. used in the package filename.
*pkgver*:: *pkgver*::
The version of the software as released from the author (e.g. `2.7.1`). The version of the software as released from the author (e.g. \'2.7.1').
*pkgrel*:: *pkgrel*::
This is the release number specific to the Arch Linuxs release. This This is the release number specific to the Arch Linuxs release. This
allows package maintainers to make updates to the package's configure allows package maintainers to make updates to the package's configure
flags, for example. flags, for example.
*pkgdesc*:: *pkgdesc*::
This should be a brief description of the package and its functionality. This should be a brief description of the package and its functionality.
Try to keep the description to one line of text. Try to keep the description to one line of text.
@ -51,13 +50,13 @@ Options and Directives
*license (array)*:: *license (array)*::
This field specifies the license(s) that apply to the package. This field specifies the license(s) that apply to the package.
Commonly-used licenses are found in `/usr/share/licenses/common`. If you Commonly-used licenses are found in '/usr/share/licenses/common'. If you
see the package's license there, simply reference it in the license see the package's license there, simply reference it in the license
field (e.g. `$$license=('GPL')$$`). If the package provides a license not field (e.g. `$$license=('GPL')$$`). If the package provides a license not
found in `/usr/share/licenses/common`, then you should include the license found in '/usr/share/licenses/common', then you should include the license
in the package itself and set `$$license=('custom')$$` or in the package itself and set `$$license=('custom')$$` or
`$$license=('custom:LicenseName')$$`. The license should be placed in `$$license=('custom:LicenseName')$$`. The license should be placed in
`$pkgdir/usr/share/licenses/$pkgname` when building the package. If '$pkgdir/usr/share/licenses/$pkgname' when building the package. If
multiple licenses are applicable for a package, list all of them: multiple licenses are applicable for a package, list all of them:
`$$license=('GPL' 'FDL')$$`. `$$license=('GPL' 'FDL')$$`.
@ -84,7 +83,7 @@ Options and Directives
This array contains an MD5 hash for every source file specified in the This array contains an MD5 hash for every source file specified in the
source array (in the same order). makepkg will use this to verify source source array (in the same order). makepkg will use this to verify source
file integrity during subsequent builds. To easily generate md5sums, run file integrity during subsequent builds. To easily generate md5sums, run
"makepkg -g >> PKGBUILD". If desired, move the md5sums line to an ``makepkg -g >> PKGBUILD''. If desired, move the md5sums line to an
appropriate location. *NOTE:* makepkg supports multiple integrity appropriate location. *NOTE:* makepkg supports multiple integrity
algorithms and their corresponding arrays (i.e. sha1sums for the SHA1 algorithms and their corresponding arrays (i.e. sha1sums for the SHA1
algorithm); however, official packages use only md5sums for the time algorithm); however, official packages use only md5sums for the time
@ -97,11 +96,11 @@ Options and Directives
*groups (array)*:: *groups (array)*::
An array of symbolic names that represent groups of packages, allowing An array of symbolic names that represent groups of packages, allowing
you to install multiple packages by requesting a single target. For you to install multiple packages by requesting a single target. For
example, one could install all KDE packages by installing the `kde` group. example, one could install all KDE packages by installing the 'kde' group.
*arch (array)*:: *arch (array)*::
Defines on which architectures the given package is available (e.g. Defines on which architectures the given package is available (e.g.
`$$arch=('i686' 'x86_64')). `$$arch=('i686' 'x86_64')$$`).
*backup (array)*:: *backup (array)*::
A space-delimited array of filenames, without preceding slashes, that A space-delimited array of filenames, without preceding slashes, that
@ -127,7 +126,7 @@ Options and Directives
same format as depends, except you cannot specify versions. same format as depends, except you cannot specify versions.
*provides (array)*:: *provides (array)*::
An array of "virtual provisions" that this package provides. This allows An array of ``virtual provisions'' that this package provides. This allows
a package to provide dependencies other than its own package name. For a package to provide dependencies other than its own package name. For
example, the dcron package can provide 'cron', which allows packages to example, the dcron package can provide 'cron', which allows packages to
depend on 'cron' rather than 'dcron OR fcron'. depend on 'cron' rather than 'dcron OR fcron'.
@ -136,50 +135,52 @@ Options and Directives
An array of packages that this package should replace, and can be used An array of packages that this package should replace, and can be used
to handle renamed/combined packages. For example, if the 'j2re' package to handle renamed/combined packages. For example, if the 'j2re' package
is renamed to 'jre', this directive allows future upgrades to continue is renamed to 'jre', this directive allows future upgrades to continue
as expected even though the package has moved. as expected even though the package has moved. Sysupgrade is currently
the only pacman operation that utilizes this field, a normal sync will
not use its value.
*options (array)*:: *options (array)*::
This array allows you to override some of makepkg's default behavior This array allows you to override some of makepkg's default behavior
when building packages. To set an option, just include the option name when building packages. To set an option, just include the option name
in the options array. To reverse the default behavior, place an "!" at in the options array. To reverse the default behavior, place an ``!'' at
the front of the option. Only specify the options you specifically want the front of the option. Only specify the options you specifically want
to override, the rest will be taken from manlink:makepkg.conf[5]. to override, the rest will be taken from manlink:makepkg.conf[5].
*NOTE:* 'force' is a special option only used in manlink:PKGBUILD[5]s, *NOTE:* 'force' is a special option only used in a manlink:PKGBUILD[5],
do not use it unless you know what you are doing. do not use it unless you know what you are doing.
*strip*:: *strip*;;
Strip symbols from binaries and libraries. If you frequently Strip symbols from binaries and libraries. If you frequently
use a debugger on programs or libraries, it may be helpful to use a debugger on programs or libraries, it may be helpful to
disable this option. disable this option.
*docs*:: *docs*;;
Save doc and info directories. If you wish to delete doc and Save doc and info directories. If you wish to delete doc and
info directories, specify "!docs" in the array. info directories, specify `!docs` in the array.
*libtool*:: *libtool*;;
Leave libtool (.la) files in packages. Specify "!libtool" to Leave libtool (.la) files in packages. Specify `!libtool` to
remove them. remove them.
*emptydirs*:: *emptydirs*;;
Leave empty directories in packages. Leave empty directories in packages.
*ccache*:: *ccache*;;
Allow the use of ccache during build. More useful in its negative Allow the use of ccache during build. More useful in its negative
form "!ccache" with select packages that have problems building form `!ccache` with select packages that have problems building
with ccache. with ccache.
*distcc*:: *distcc*;;
Allow the use of distcc during build. More useful in its negative Allow the use of distcc during build. More useful in its negative
form "!distcc" with select packages that have problems building form `!distcc` with select packages that have problems building
with distcc. with distcc.
*makeflags*:: *makeflags*;;
Allow the use of user-specific makeflags during build as specified Allow the use of user-specific makeflags during build as specified
in manlink:makepkg.conf[5]. More useful in its negative form in manlink:makepkg.conf[5]. More useful in its negative form
"!makeflags" with select packages that have problems building with `!makeflags` with select packages that have problems building with
custom makeflags such as "-j2" (or higher). custom makeflags such as `-j2` (or higher).
*force*:: *force*;;
Force the package to be upgraded by a pacman system upgrade Force the package to be upgraded by a pacman system upgrade
operation, even if the version number would normally not trigger operation, even if the version number would normally not trigger
such an upgrade. This is useful when the version numbering scheme such an upgrade. This is useful when the version numbering scheme

View File

@ -16,20 +16,20 @@ For ease of access, the libalpm manual has been split up into several sections.
*TODO:* Yes, this man page needs a lot of work. Once we get around to doing *TODO:* Yes, this man page needs a lot of work. Once we get around to doing
good Doxygen documentation, it will improve. We promise. good Doxygen documentation, it will improve. We promise.
* alpm_databases Database Functions *alpm_databases*:: Database Functions
* alpm_interface Interface Functions *alpm_interface*:: Interface Functions
* alpm_list List Functions *alpm_list*:: List Functions
* alpm_log Logging Functions *alpm_log*:: Logging Functions
* alpm_misc Miscellaneous Functions *alpm_misc*:: Miscellaneous Functions
* alpm_packages Package Functions *alpm_packages*:: Package Functions
* alpm_sync Sync Functions *alpm_sync*:: Sync Functions
* alpm_trans Transaction Functions *alpm_trans*:: Transaction Functions
Configuration Configuration
------------- -------------
See manlink:pacman.conf[5] for more details on configuring libalpm using the See manlink:pacman.conf[5] for more details on configuring libalpm using the
pacman.conf file. 'pacman.conf' file.
See Also See Also

View File

@ -25,91 +25,107 @@ 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 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, validate source files, check dependencies, configure the build-time settings,
build the package, install the package into a temporary root, make build the package, install the package into a temporary root, make
customizations, generate meta-info, and package the whole thing up for pacman to customizations, generate meta-info, and package the whole thing up for pacman
use. to use.
makeworld can be used to rebuild an entire package group or the entire build tree. makeworld can be used to rebuild an entire package group or the entire build
See `makeworld --help` for syntax. tree. See `makeworld \--help` for syntax.
Options Options
------- -------
*-b, --builddeps*:: *-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.
*-b, \--builddeps*::
Build missing dependencies from source. When makepkg finds missing Build missing dependencies from source. When makepkg finds missing
build-time or run-time dependencies, it will look for the dependencies' build-time or run-time dependencies, it will look for the dependencies'
PKGBUILD files under ABSROOT (set in makepkg.conf). If it finds them it PKGBUILD files under ABSROOT (set in makepkg.conf). If it finds them it
will call makepkg to build and install the missing dependencies. The will call makepkg to build and install the missing dependencies. The
child calls will be made with the `-b` and `-i` options. child calls will be made with the `-b` and `-i` options.
*-c, --clean*:: *-c, \--clean*::
Clean up leftover work files and directories after a successful build. Clean up leftover work files and directories after a successful build.
*-C, --cleancache*:: *-C, \--cleancache*::
Removes all cached source files from the directory specified in SRCDEST Removes all cached source files from the directory specified in SRCDEST
in manlink:makepkg.conf[5]. in manlink:makepkg.conf[5].
*-d, --nodeps*:: *-d, \--nodeps*::
Do not perform any dependency checks. This will let you override and Do not perform any dependency checks. This will let you override and
ignore any dependencies required. There is a good chance this option ignore any dependencies required. There is a good chance this option
will break the build process if all of the dependencies are not will break the build process if all of the dependencies are not
installed. installed.
*-e, --noextract*:: *-e, \--noextract*::
Do not extract source files; use whatever source already exists in the Do not extract source files; use whatever source already exists in the
src/ directory. This is handy if you want to go into src and manually src/ directory. This is handy if you want to go into src and manually
patch or tweak code, then make a package out of the result. Keep in mind 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 that creating a patch may be a better solution to allow others to use
your PKGBUILD. your PKGBUILD.
*-f, --force*:: *-f, \--force*::
makepkg will not build a package if a built package already exists in makepkg will not build a package if a built package already exists in
the PKGDEST (set in manlink:makepkg.conf[5]) directory, which may the PKGDEST (set in manlink:makepkg.conf[5]) directory, which may
default to the current directory. This allows the built package to be default to the current directory. This allows the built package to be
overwritten. overwritten.
*-g, --geninteg*:: *-g, \--geninteg*::
For each source file in the source array of PKGBUILD, download the file For each source file in the source array of PKGBUILD, download the file
if required and generate integrity checks. The integrity checks if required and generate integrity checks. The integrity checks
generated are determined by the value of the INTEGRITY_CHECK array in generated are determined by the value of the INTEGRITY_CHECK array in
manlink:makepkg.conf[5]. This output can be redirected into your manlink:makepkg.conf[5]. This output can be redirected into your
PKGBUILD for source validation (`makepkg -g >> PKGBUILD`). PKGBUILD for source validation (`makepkg -g >> PKGBUILD`).
*-h, --help*:: *-h, \--help*::
Output syntax and command line options. Output syntax and command line options.
*-i, --install*:: *-i, \--install*::
Install or upgrade the package after a successful build using pacman. Install or upgrade the package after a successful build using
manlink:pacman[8].
*-m, --nocolor*:: *-m, \--nocolor*::
Disable color in output messages. Disable color in output messages.
*-o, --nobuild*:: *-o, \--nobuild*::
Download and extract files only, but do not build them. Useful with the Download and extract files only, but do not build them. Useful with the
`--noextract` option if you wish to tweak the files in src/ before `\--noextract` option if you wish to tweak the files in src/ before
building. building.
*-p* <'buildscript'>:: *-p* <`buildscript`>::
Read the package script buildscript instead of the default, Read the package script `buildscript` instead of the default, see
manlink:PKGBUILD[5]. manlink:PKGBUILD[5].
*-r, --rmdeps*:: *-r, \--rmdeps*::
Upon successful build, remove any dependencies installed by makepkg Upon successful build, remove any dependencies installed by makepkg
during dependency auto-resolution (using `-b` or `-s`). during dependency auto-resolution (using `-b` or `-s`).
*-R, --repackage*:: *-R, \--repackage*::
Repackage contents of pkg/ without rebuilding the package. This is Repackage contents of pkg/ without rebuilding the package. This is
useful if you forgot a depend or install file in your PKGBUILD and the useful if you forgot a depend or install file in your PKGBUILD and the
build itself will not change. build itself will not change.
*-s, --syncdeps*:: *-s, \--syncdeps*::
Install missing dependencies using pacman. When missing build-time or Install missing dependencies using pacman. When missing build-time or
run-time dependencies are found, pacman will try to resolve them. If run-time dependencies are found, pacman will try to resolve them. If
successful, the missing packages will be downloaded and installed. successful, the missing packages will be downloaded and installed.
*--noconfirm*:: *\--asroot*::
Allow makepkg to run as root. This is for security purposes as it is
normally dangerous to do so. This will also disable use of fakeroot and
sudo.
*\--source*::
Do not actually build the package, but build a source-only tarball. This
is useful for passing a single tarball to another program such as a
chroot, remote builder, or an AUR upload.
*\--noconfirm*::
(Passed to pacman) Prevent pacman from waiting for user input before (Passed to pacman) Prevent pacman from waiting for user input before
proceeding with operations. proceeding with operations.
*--noprogressbar*:: *\--noprogressbar*::
(Passed to pacman) Prevent pacman from displaying a progress bar; (Passed to pacman) Prevent pacman from displaying a progress bar;
useful if you are redirecting makepkg output to file. useful if you are redirecting makepkg output to file.
@ -117,7 +133,7 @@ Options
Configuration Configuration
------------- -------------
See manlink:makepkg.conf[5] for more details on configuring makepkg using the See manlink:makepkg.conf[5] for more details on configuring makepkg using the
makepkg.conf file. 'makepkg.conf' file.
See Also See Also

View File

@ -19,123 +19,133 @@ Description
Configuration options for makekpg are stored in makepkg.conf. This file is Configuration options for makekpg are stored in makepkg.conf. This file is
sourced, so you can include any special compiler flags you wish to use. This is sourced, so you can include any special compiler flags you wish to use. This is
helpful for building for different architectures, or with different helpful for building for different architectures, or with different
optimizations. optimizations. However, only the variables described below are exported to the
build environment.
*NOTE:* This does not guarantee that all package Makefiles will use your NOTE: This does not guarantee that all package Makefiles will use your exported
exported variables. Some of them are non-standard... variables. Some of them are non-standard.
The default file is fairly well commented, so it may be easiest to simply follow The default file is fairly well commented, so it may be easiest to simply
directions given there for customization. follow directions given there for customization.
Options Options
------- -------
*FTPAGENT="*'/path/to/command [options]'*"*:: **DLAGENTS=(**\'protocol::/path/to/command [options]' ...**)**::
Sets the download agent used to fetch source files specified with a URL Sets the download agents used to fetch source files specified with a URL in
in the manlink:PKGBUILD[5] file. Flags can be specified as well; the the manlink:PKGBUILD[5] file. Options can be specified for each command as
download URL is then placed on the end of the command. well; the download URL is placed on the end of the command. This is more
flexible than the former `FTPAGENT` variable, as any protocol can have a
download agent. Several examples are provided in the default makepkg.conf.
*CARCH="*'carch'*"*:: **CARCH=**"carch"::
Specifies your computer architecture; possible values include such Specifies your computer architecture; possible values include such things
things as "i686", "x86_64", "ppc", etc. This should be automatically as ``i686'', ``x86_64'', ``ppc'', etc. This should be automatically set on
set on installation. installation.
*CHOST="*'chost'*"*:: **CHOST=**"chost"::
A string such as "i686-pc-linux-gnu", do not touch unless you know what A string such as ``i686-pc-linux-gnu'', do not touch unless you know what
you are doing. you are doing. This can be commented out by most users if desired.
*CFLAGS="*'cflags'*"*:: **CFLAGS=**"cflags"::
Flags used for the C compiler. This is a key part to the use of makepkg. Flags used for the C compiler. This is a key part to the use of makepkg.
Usually several options are specified, and the most common string Usually several options are specified, and the most common string resembles
resembles something like this: "-march=i686 -O2 -pipe". Another useful something like this: ``-march=i686 -O2 -pipe''. Another useful option may
option may be -mcpu in place of -march. Read gcc(1) for more details on be `-mcpu` in place of `-march`. Read gcc(1) for more details on the wide
the wide variety of compiler flags available. variety of compiler flags available.
*CXXFLAGS="*'cxxflags'*"*:: **CXXFLAGS=**"cxxflags"::
Flags used for the C++ compiler; see CFLAGS for more info. Flags used for the C++ compiler; see CFLAGS for more info.
*MAKEFLAGS="*'makeflags'*"*:: **MAKEFLAGS=**"makeflags"::
This is often used to set the number of jobs used, for example, "-j2". This is often used to set the number of jobs used, for example, `-j2`.
Other flags that make accepts can also be passed. Other flags that make accepts can also be passed.
*BUILDENV=(*'fakeroot !distcc color !ccache'*)*:: **BUILDENV=(**fakeroot !distcc color !ccache !xdelta**)**::
This array contains four options that affect the build environment, the This array contains options that affect the build environment, the defaults
defaults are shown here. All options should always be left in the array; are shown here. All options should always be left in the array; to enable
to enable or disable an option simply remove or place an "!" at the or disable an option simply remove or place an ``!'' at the front of the
front of the option. Each works as follows: option. Each works as follows:
*fakeroot*:: *fakeroot*;;
Allow building packages as a non-root user. This is highly Allow building packages as a non-root user. This is highly recommended.
recommended.
*distcc*:: *distcc*;;
Use the distributed C/C++/ObjC compiler to spread compilation Use the distributed C/C++/ObjC compiler to spread compilation among
among multiple machines. If this is enabled, DISTCC_HOSTS must multiple machines. If this is enabled, `DISTCC_HOSTS` must be specified
be specified as well. as well.
*color*:: *color*;;
Colorize output messages, making output easier to read. Colorize output messages, making output easier to read.
*ccache*:: *ccache*;;
Use ccache to cache compilation by default. This allows for Use ccache to cache compilation by default. This allows for faster
faster compiles if you are continuously recompiling the same compiles if you are continuously recompiling the same packages. It can
packages. It can be disabled for individual packages by placing be disabled for individual packages by placing `!ccache` in the
!ccache in the PKGBUILD options array. PKGBUILD options array.
*DISTCC_HOSTS="*'host1' ...*"*:: *xdelta*;;
Generate an xdelta binary patch from previous to current package. The
previous package must be available in the makepkg cache directory for
this to occur.
**DISTCC_HOSTS=**"host1 ..."::
If using DistCC, this is used to specify a space-delimited list of hosts If using DistCC, this is used to specify a space-delimited list of hosts
running in the DistCC cluster. In addition, you will want to modify your running in the DistCC cluster. In addition, you will want to modify your
MAKEFLAGS. `MAKEFLAGS`.
*OPTIONS=(*'strip !docs libtool emptydirs'*)*:: **OPTIONS=(**strip !docs libtool emptydirs**)**::
This array contains four options that affect the default packaging. All This array contains options that affect the default packaging. All four are
four are equivalent to options that can be placed in the PKGBUILD; the equivalent to options that can be placed in the PKGBUILD; the defaults are
defaults are shown here. All options should always be left in the array; shown here. All options should always be left in the array; to enable or
to enable or disable an option simply remove or place an "!" at the front disable an option simply remove or place an ``!'' at the front of the
of the option. Each works as follows: option. Each works as follows:
*strip*:: *strip*;;
Strip symbols from binaries and libraries. If you frequently use Strip symbols from binaries and libraries. If you frequently use a
a debugger on programs or libraries, it may be helpful to disable debugger on programs or libraries, it may be helpful to disable this
this option. option.
*docs*:: *docs*;;
Save doc and info directories. If you wish to delete doc and info Save doc and info directories. If you wish to delete doc and info
directories, specify "!docs" in the array. directories, specify `!docs' in the array.
*libtool*:: *libtool*;;
Leave libtool (.la) files in packages. Specify "!libtool" to Leave libtool (.la) files in packages. Specify `!libtool' to remove
remove them. them.
*emptydirs*:: *emptydirs*;;
Leave empty directories in packages. Leave empty directories in packages.
*INTEGRITY_CHECK=(*'check1' ...*)*:: **INTEGRITY_CHECK=(**check1 ...**)**::
File integrity checks to use. Multiple checks may be specified; this File integrity checks to use. Multiple checks may be specified; this
affects both generation and checking. The current valid options are: affects both generation and checking. The current valid options are:
md5, sha1, sha256, sha384, and sha512. `md5`, `sha1`, `sha256`, `sha384`, and `sha512`.
*DOC_DIRS=(*'usr/{,share/}{info,doc}' ...*)*:: **DOC_DIRS=(**usr/{,share/}{info,doc} ...**)**::
If "!docs" is specified in the OPTIONS array, this variable will If "!docs" is specified in the OPTIONS array, this variable will
instruct makepkg where to look to remove docs. If you build packages instruct makepkg where to look to remove docs. If you build packages
that are located in opt/, you may need to add the directory to this that are located in opt/, you may need to add the directory to this
array. *NOTE:* do not add the leading slash to the directory name. array. *NOTE:* Do not add the leading slash to the directory name.
*PKGDEST=*'/path/to/folder':: **PKGDEST=**"/path/to/folder"::
If this value is not set, packages will by default be placed in the If this value is not set, packages will by default be placed in the
current directory (location of the manlink:PKGBUILD[5]). Many people current directory (location of the manlink:PKGBUILD[5]). Many people
like to keep all their packages in one place so this option allows like to keep all their packages in one place so this option allows
this behavior. A common location is "/home/packages". this behavior. A common location is ``/home/packages''.
*SRCDEST=*'/path/to/folder':: **SRCDEST=**"/path/to/folder"::
If this value is not set, downloaded source files will only be stored If this value is not set, downloaded source files will only be stored
in the current directory. Many people like to keep all source files in in the current directory. Many people like to keep all source files in
a central location for easy cleanup, so this path can be set here. a central location for easy cleanup, so this path can be set here.
*PACKAGER="*'John Doe <john@doe.com>'*"*:: **PACKAGER=**"John Doe <john@doe.com>"::
This value is used when querying a package to see who was the builder. This value is used when querying a package to see who was the builder.
It is recommended you change this to your name and email address. It is recommended you change this to your name and email address.
*BUILDSCRIPT*, *PKGEXT*, *SRCEXT*, *DB_COMPRESSION*, *DB_CHECKSUMS*::
Do not touch these unless you know what you are doing.
See Also See Also
-------- --------

View File

@ -28,206 +28,212 @@ ends to be written (for instance, a GUI front end).
Operations Operations
---------- ----------
*-A, --add* (deprecated):: *-A, \--add* (deprecated)::
Add a package to the system. Either a URL or file path can be specified. Add a package to the system. Either a URL or file path can be specified.
The package will be uncompressed into the installation root and the The package will be uncompressed into the installation root and the
database will be updated. The package will not be installed if another database will be updated. The package will not be installed if another
version is already installed. *NOTE*: please use `--upgrade` in place of version is already installed. *NOTE*: please use '\--upgrade' in place of
this option. this option.
*-F, --freshen*:: *-F, \--freshen*::
This is like `--upgrade` except it will only upgrade packages already This is like '\--upgrade' except it will only upgrade packages already
installed on the system. installed on the system.
*-Q, --query*:: *-Q, \--query*::
Query the package database. This operation allows you to view installed Query the package database. This operation allows you to view installed
packages and their files, as well as meta-information about individual packages and their files, as well as meta-information about individual
packages (dependencies, conflicts, install date, build date, size). This packages (dependencies, conflicts, install date, build date, size). This
can be run against the local package database or can be used on can be run against the local package database or can be used on
individual `.tar.gz` packages. See <<QO,Query Options>> below. individual '.tar.gz' packages. See <<QO,Query Options>> below.
*-R, --remove*:: *-R, \--remove*::
Remove a package from the system. Files belonging to the specified Remove a package from the system. Files belonging to the specified
package will be deleted, and the database will be updated. Most package will be deleted, and the database will be updated. Most
configuration files will be saved with a `.pacsave` extension unless the configuration files will be saved with a `.pacsave` extension unless the
`--nosave` option is used. See <<RO,Remove Options>> below. '\--nosave' option is used. See <<RO,Remove Options>> below.
*-S, --sync*:: *-S, \--sync*::
Synchronize packages. Packages are installed directly from the ftp Synchronize packages. Packages are installed directly from the ftp
servers, including all dependencies required to run the packages. For servers, including all dependencies required to run the packages. For
example, `pacman -S qt` will download and install qt and all the example, `pacman -S qt` will download and install qt and all the
packages it depends on. You can also use `pacman -Su` to upgrade all packages it depends on. You can also use `pacman -Su` to upgrade all
packages that are out of date. See <<SO,Sync Options>> below. packages that are out of date. See <<SO,Sync Options>> below.
*-U, --upgrade*:: *-U, \--upgrade*::
Upgrade or add a package to the system. Either a URL or file path can be Upgrade or add a package to the system. Either a URL or file path can be
specified. This is a "remove-then-add" process. See specified. This is a "remove-then-add" process. See <<HCF,Handling Config
<<HCF,Handling Config Files>> for an explanation on how Files>> for an explanation on how pacman takes care of config files.
pacman takes care of config files.
*-V, --version*:: *-V, \--version*::
Display version and exit. Display version and exit.
*-h, --help*:: *-h, \--help*::
Display syntax for the given operation. If no operation was supplied Display syntax for the given operation. If no operation was supplied
then the general syntax is shown. then the general syntax is shown.
Options Options
------- -------
*--ask* <'number'>:: *\--asdeps*::
Install packages non-explicitly; in other works, fake their install reason
to be installed as a dependency. This is useful for makepkg and other
build from source tools that need to install dependencies before building
the package.
*\--ask* <'number'>::
Pre-specify answers to questions. It is doubtful whether this option Pre-specify answers to questions. It is doubtful whether this option
even works, so I would not recommend using it. *TODO*: document this even works, so I would not recommend using it. *TODO*: document this
more, as I have no idea how it works or when you would use it, or if we more, as I have no idea how it works or when you would use it, or if we
should just dump it. should just dump it.
*-b, --dbpath* <'path'>:: *-b, \--dbpath* <'path'>::
Specify an alternative database location (default is `/var/lib/pacman`). Specify an alternative database location (default is ``/var/lib/pacman'').
This should not be used unless you know what you are doing. This should not be used unless you know what you are doing.
*-d, --nodeps*:: *-d, \--nodeps*::
Skips all dependency checks. Normally, pacman will always check a Skips all dependency checks. Normally, pacman will always check a
package's dependency fields to ensure that all dependencies are package's dependency fields to ensure that all dependencies are
installed and there are no package conflicts in the system. installed and there are no package conflicts in the system.
*-f, --force*:: *-f, \--force*::
Bypass file conflict checks and overwrite conflicting files. If the Bypass file conflict checks and overwrite conflicting files. If the
package that is about to be installed contains files that are already package that is about to be installed contains files that are already
installed, this option will cause all those files to be overwritten. installed, this option will cause all those files to be overwritten.
This option should be used with care, ideally not at all. This option should be used with care, ideally not at all.
*-r, --root* <'path'>:: *-r, \--root* <'path'>::
Specify an alternative installation root (default is `/`). This should Specify an alternative installation root (default is ``/''). This should
not be used as a way to install software into `/usr/local` instead of not be used as a way to install software into ``/usr/local'' instead of
`/usr`. This option is used if you want to install a package on a ``/usr''. This option is used if you want to install a package on a
temporary mounted partition which is "owned" by another system. By using temporary mounted partition which is "owned" by another system.
this option you not only specify where the software should be installed,
but you also specify which package database and cache location to use.
*-v, --verbose*:: *-v, --verbose*::
Output more status messages, such as the Root and DBPath. Output more status messages, such as the Root, DBPath, CacheDir, etc.
*--cachedir* <'dir'>:: *\--cachedir* <'dir'>::
Specify an alternative package cache location (default is Specify an alternative package cache location (default is
`/var/cache/pacman/pkg`). This should not be used unless you know what ``/var/cache/pacman/pkg''). Multiple cache directories can be specified,
you are doing. and they are tried in the order they are passed to pacman.
*--config* <'file'>:: *\--config* <'file'>::
Specify an alternate configuration file. Specify an alternate configuration file.
*--noconfirm*:: *\--noconfirm*::
Bypass any and all "Are you sure?" messages. It's not a good idea to do Bypass any and all "Are you sure?" messages. It's not a good idea to do
this unless you want to run pacman from a script. this unless you want to run pacman from a script.
*--noprogressbar*:: *\--noprogressbar*::
Do not show a progress bar when downloading files. This can be useful Do not show a progress bar when downloading files. This can be useful
for scripts that call pacman and capture the output. for scripts that call pacman and capture the output.
*--noscriptlet*:: *\--noscriptlet*::
If an install scriptlet exists, do not execute it. Do not use this If an install scriptlet exists, do not execute it. Do not use this
unless you know what you are doing. unless you know what you are doing.
Query Options[[QO]] Query Options[[QO]]
------------------- -------------------
*-c, --changelog*:: *-c, \--changelog*::
View the ChangeLog of a package. Not every package will provide one but View the ChangeLog of a package. Not every package will provide one but
it will be shown if available. it will be shown if available.
*-e, --orphans*:: *-e, \--orphans*::
List all packages that were pulled in by a previously installed package List all packages that were pulled in by a previously installed package
but no longer required by any installed package. but no longer required by any installed package.
*-g, --groups*:: *-g, \--groups*::
Display all packages that are members of a named group. If not name is Display all packages that are members of a named group. If not name is
specified, list all grouped packages. specified, list all grouped packages.
*-i, --info*:: *-i, \--info*::
Display information on a given package. The `-p` option can be used if Display information on a given package. The '-p' option can be used if
querying a package file instead of the local database. querying a package file instead of the local database.
*-l, --list*:: *-l, \--list*::
List all files owned by a given package. Multiple packages can be List all files owned by a given package. Multiple packages can be
specified on the command line. specified on the command line.
*-m, --foreign*:: *-m, \--foreign*::
List all packages that were not found in the sync database(s). Typically List all packages that were not found in the sync database(s). Typically
these are packages that were downloaded manually and installed with these are packages that were downloaded manually and installed with
`--upgrade`. '\--upgrade'.
*-o, --owns* <'file'>:: *-o, \--owns* <'file'>::
Search for the package that owns file. Search for the package that owns file.
*-p, --file*:: *-p, \--file*::
Signifies that the package supplied on the command line is a file and Signifies that the package supplied on the command line is a file and
not an entry in the database. The file will be decompressed and queried. not an entry in the database. The file will be decompressed and queried.
This is useful in combination with `--info` and `--list`. This is useful in combination with '\--info' and '\--list'.
*-s, --search* <'regexp'>:: *-s, \--search* <'regexp'>::
This will search each locally-installed package for names or This will search each locally-installed package for names or
descriptions that matche regexp. descriptions that match `regexp`.
*-u, --upgrades*:: *-t, \--test*::
Run some brief checks looking at the consistency of the local database.
*-u, \--upgrades*::
Lists all packages that are out of date on the local system. This option Lists all packages that are out of date on the local system. This option
works best if the sync database is refreshed using `-Sy`. works best if the sync database is refreshed using '-Sy'.
Remove Options[[RO]] Remove Options[[RO]]
-------------------- --------------------
*-c, --cascade*:: *-c, \--cascade*::
Remove all target packages, as well as all packages that depend on one Remove all target packages, as well as all packages that depend on one
or more target packages. This operation is recursive. or more target packages. This operation is recursive.
*-k, --keep*:: *-k, \--keep*::
Removes the database entry only. Leaves all files in place. Removes the database entry only. Leaves all files in place.
*-n, --nosave*:: *-n, \--nosave*::
Instructs pacman to ignore file backup designations. Normally, when a Instructs pacman to ignore file backup designations. Normally, when a
file is removed from the system the database is checked to see if the file is removed from the system the database is checked to see if the
file should be renamed with a .pacsave extension. file should be renamed with a ``.pacsave'' extension.
*-s, --recursive*:: *-s, \--recursive*::
Remove each target specified including all dependencies, provided that Remove each target specified including all dependencies, provided that
(A) they are not required by other packages; and (B) they were not (A) they are not required by other packages; and (B) they were not
explicitly installed by the user. This option is analogous to a explicitly installed by the user. This option is analogous to a
backwards `--sync` operation. backwards '\--sync' operation.
Sync Options[[SO]] Sync Options[[SO]]
------------------ ------------------
*-c, --clean*:: *-c, \--clean*::
Remove old packages from the cache to free up disk space. When pacman Remove old packages from the cache to free up disk space. When pacman
downloads packages, it saves them in `/var/cache/pacman/pkg`. Use one downloads packages, it saves them in ``/var/cache/pacman/pkg''. Use one
`--clean` switch to remove old packages; use two to remove all packages '\--clean' switch to remove old packages; use two to remove all packages
from the cache. from the cache.
*-e, --dependsonly*:: *-e, \--dependsonly*::
Install all dependencies of a package, but not the specified package Install all dependencies of a package, but not the specified package
itself. This is pretty useless and we're not sure why it even exists. itself. This is pretty useless and we're not sure why it even exists.
*-g, --groups*:: *-g, \--groups*::
Display all the members for each package group specified. If no group Display all the members for each package group specified. If no group
names are provided, all groups will be listed; pass the flag twice to names are provided, all groups will be listed; pass the flag twice to
view all groups and their members. view all groups and their members.
*-i, --info*:: *-i, \--info*::
Display dependency and other information for a given package. This will Display dependency and other information for a given package. This will
search through all repositories for a matching package. search through all repositories for a matching package.
*-l, --list*:: *-l, \--list*::
List all packages in the specified repositories. Multiple repositories List all packages in the specified repositories. Multiple repositories
can be specified on the command line. can be specified on the command line.
*-p, --print-uris*:: *-p, \--print-uris*::
Print out URIs for each package that will be installed, including any Print out URIs for each package that will be installed, including any
dependencies yet to be installed. These can be piped to a file and dependencies yet to be installed. These can be piped to a file and
downloaded at a later time, using a program like wget. downloaded at a later time, using a program like wget.
*-s, --search* <'regexp'>:: *-s, \--search* <'regexp'>::
This will search each package in the sync databases for names or This will search each package in the sync databases for names or
descriptions that match regexp. descriptions that match `regexp`.
*-u, --sysupgrade*:: *-u, \--sysupgrade*::
Upgrades all packages that are out of date. Each currently-installed Upgrades all packages that are out of date. Each currently-installed
package will be examined and upgraded if a newer package exists. A package will be examined and upgraded if a newer package exists. A
report of all packages to upgrade will be presented and the operation report of all packages to upgrade will be presented and the operation
@ -235,17 +241,17 @@ Sync Options[[SO]]
automatically resolved at this level and will be installed/upgraded if automatically resolved at this level and will be installed/upgraded if
necessary. necessary.
*-w, --downloadonly*:: *-w, \--downloadonly*::
Retrieve all packages from the server, but do not install/upgrade Retrieve all packages from the server, but do not install/upgrade
anything. anything.
*-y, --refresh*:: *-y, \--refresh*::
Download a fresh copy of the master package list from the server(s) Download a fresh copy of the master package list from the server(s)
defined in pacman.conf. This should typically be used each time you use defined in pacman.conf. This should typically be used each time you use
`--sysupgrade` or `-u`. Passing two `--refresh` or `-y` flags will force '\--sysupgrade' or '-u'. Passing two '\--refresh' or '-y' flags will force
a refresh of all package lists even if they are thought to be up to date. a refresh of all package lists even if they are thought to be up to date.
*--ignore* <'package'>:: *\--ignore* <'package'>::
Directs pacman to ignore upgrades of package even if there is one Directs pacman to ignore upgrades of package even if there is one
available. available.
@ -276,7 +282,7 @@ original=X, current=Y, new=Y::
The new file is identical to the current file. Install the new file. The new file is identical to the current file. Install the new file.
original=X, current=Y, new=Z:: original=X, current=Y, new=Z::
All three files are different, so install the new file with a `.pacnew` All three files are different, so install the new file with a '.pacnew'
extension and warn the user. The user must then manually merge any extension and warn the user. The user must then manually merge any
necessary changes into the original file. necessary changes into the original file.
@ -284,7 +290,7 @@ original=X, current=Y, new=Z::
Configuration Configuration
------------- -------------
See manlink:pacman.conf[5] for more details on configuring pacman using the See manlink:pacman.conf[5] for more details on configuring pacman using the
`pacman.conf` file. 'pacman.conf' file.
See Also See Also

View File

@ -16,11 +16,11 @@ Synopsis
Description Description
----------- -----------
Pacman, using manlink:libalpm[3], will attempt to read `pacman.conf` each Pacman, using manlink:libalpm[3], will attempt to read pacman.conf each time it
time it is invoked. This configuration file is divided into sections or is invoked. This configuration file is divided into sections or repositories.
repositories. Each section defines a package repository that pacman can use Each section defines a package repository that pacman can use when searching
when searching for packages in `--sync` mode. The exception to this is the for packages in '\--sync' mode. The exception to this is the options section,
options section, which defines global options. which defines global options.
Example Example
@ -43,32 +43,42 @@ Server = file:///home/pkgs
Options Options
------- -------
*DBPath =* 'path/to/db/dir':: *RootDir =* path/to/root::
Set the default root directory for pacman to install to.
*DBPath =* path/to/db/dir::
Overrides the default location of the toplevel database directory. Overrides the default location of the toplevel database directory.
The default is `var/lib/pacman`. The default is ``/var/lib/pacman/''.
*CacheDir =* 'path/to/cache/dir':: *CacheDir =* path/to/cache/dir::
Overrides the default location of the package cache directory. The Overrides the default location of the package cache directory. The default
default is `var/cache/pacman`. is ``/var/cache/pacman/pkg/''. Multiple cache directories can be specified,
and they are tried in the order they are listed in the config file. If a
file is not found in any cache directory, it will be downloaded to the
first cache directory with write access.
*HoldPkg =* 'package' ...:: *LogFile =* '/path/to/file'::
If a user tries to `--remove` a package that's listed in `HoldPkg`, Log actions directly to a file. Default is ``/var/log/pacman.log''.
*HoldPkg =* package ...::
If a user tries to '\--remove' a package that's listed in `HoldPkg`,
pacman will ask for confirmation before proceeding. pacman will ask for confirmation before proceeding.
*IgnorePkg =* 'package' ...:: *IgnorePkg =* package ...::
Instructs pacman to ignore any upgrades for this package when performing Instructs pacman to ignore any upgrades for this package when performing
a `--sysupgrade`. a '\--sysupgrade'.
*Include =* 'path':: *Include =* path::
Include another config file. This file can include repositories or Include another config file. This file can include repositories or
general configuration options. general configuration options.
*XferCommand =* '/path/to/command %u':: *XferCommand =* /path/to/command %u::
If set, an external program will be used to download all remote files. If set, an external program will be used to download all remote files.
All instances of `%u` will be replaced with the download URL. If present, All instances of `%u` will be replaced with the download URL. If present,
instances of `%o` will be replaced with the local filename, plus a instances of `%o` will be replaced with the local filename, plus a
".part" extension, which allows programs like wget to do file resumes ``.part'' extension, which allows programs like wget to do file resumes
properly. properly.
+
This option is useful for users who experience problems with built-in This option is useful for users who experience problems with built-in
http/ftp support, or need the more advanced proxy support that comes with http/ftp support, or need the more advanced proxy support that comes with
utilities like wget. utilities like wget.
@ -76,27 +86,24 @@ Options
*NoPassiveFtp*:: *NoPassiveFtp*::
Disables passive ftp connections when downloading packages. (aka Active Mode) Disables passive ftp connections when downloading packages. (aka Active Mode)
*NoUpgrade =* 'file' ...:: *NoUpgrade =* file ...::
All files listed with a `NoUpgrade` directive will never be touched during All files listed with a `NoUpgrade` directive will never be touched during
a package install/upgrade. Do not include the leading slash when specifying a package install/upgrade. Do not include the leading slash when specifying
files. files.
*NoExtract =* 'file' ...:: *NoExtract =* file ...::
All files listed with a `NoExtract` directive will never be extracted from All files listed with a `NoExtract` directive will never be extracted from
a package into the filesystem. This can be useful when you don't want part a package into the filesystem. This can be useful when you don't want part
of a package to be installed. For example, if your httpd root uses an of a package to be installed. For example, if your httpd root uses an
index.php, then you would not want the index.html file to be extracted from 'index.php', then you would not want the 'index.html' file to be extracted
the apache package. from the 'apache' package.
*UseSyslog*:: *UseSyslog*::
Log action messages through syslog(). This will insert log entries into Log action messages through syslog(). This will insert log entries into
`/var/log/messages` or equivalent. ``/var/log/messages'' or equivalent.
*LogFile =* '/path/to/file'::
Log actions directly to a file. Default is `/var/log/pacman.log`.
*ShowSize*:: *ShowSize*::
Display the size of individual packages for `--sync` and `--query` modes. Display the size of individual packages for '\--sync' and '\--query' modes.
Repository Sections Repository Sections
@ -104,32 +111,33 @@ Repository Sections
Each repository section defines a section name and at least one location where Each repository section defines a section name and at least one location where
the packages can be found. The section name is defined by the string within the packages can be found. The section name is defined by the string within
square brackets (the two above are 'current' and 'custom'). Locations are square brackets (the two above are 'current' and 'custom'). Locations are
defined with the `Server` directive and follow a URL naming structure. If you defined with the 'Server' directive and follow a URL naming structure. If you
want to use a local directory, you can specify the full path with a `file://` want to use a local directory, you can specify the full path with a ``file://''
prefix, as shown above. prefix, as shown above.
The order of repositories in the file matters; repositories listed first will The order of repositories in the file matters; repositories listed first will
take precedence over those listed later in the file when packages in two take precedence over those listed later in the file when packages in two
repositories have identical names, regardless of version number. repositories have identical names, regardless of version number.
Using Your Own Repository Using Your Own Repository
------------------------- -------------------------
If you have numerous custom packages of your own, it is often easier to generate If you have numerous custom packages of your own, it is often easier to generate
your own custom local repository than install them all with the `--upgrade` your own custom local repository than install them all with the '\--upgrade'
option. All you need to do is generate a compressed package database in the option. All you need to do is generate a compressed package database in the
directory with these packages so pacman can find it when run with `--refresh`. directory with these packages so pacman can find it when run with '\--refresh'.
repo-add /home/pkgs/custom.db.tar.gz /home/pkgs/*.pkg.tar.gz repo-add /home/pkgs/custom.db.tar.gz /home/pkgs/*.pkg.tar.gz
The above command will generate a compressed database named The above command will generate a compressed database named
`/home/pkgs/custom.db.tar.gz`. Note that the database must be of the form '/home/pkgs/custom.db.tar.gz'. Note that the database must be of the form
`{treename}.db.tar.gz`, where `{treename}` is the name of the section defined in '{treename}.db.tar.gz', where '{treename}' is the name of the section defined in
the configuration file. That's it! Now configure your custom section in the the configuration file. That's it! Now configure your custom section in the
configuration file as shown in the config example above. Pacman will now use your configuration file as shown in the config example above. Pacman will now use your
package repository. If you add new packages to the repository, remember to package repository. If you add new packages to the repository, remember to
re-generate the database and use pacman's `--refresh` option. re-generate the database and use pacman's '\--refresh' option.
For more information on the repo-add command, use `repo-add --help`. For more information on the repo-add command, see ``repo-add \--help'' or
manlink:repo-add[8].
See Also See Also