2007-07-06 16:54:18 -04:00
|
|
|
/////
|
|
|
|
vim:set ts=4 sw=4 syntax=asciidoc noet:
|
|
|
|
/////
|
2007-07-02 19:22:01 -04:00
|
|
|
pacman(8)
|
2007-07-01 17:58:46 -04:00
|
|
|
=========
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
Name
|
2007-07-01 17:58:46 -04:00
|
|
|
----
|
|
|
|
pacman - package manager utility
|
|
|
|
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
Synopsis
|
2007-07-01 17:58:46 -04:00
|
|
|
--------
|
|
|
|
'pacman' <operation> [options] [packages]
|
|
|
|
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
Description
|
2007-07-01 17:58:46 -04:00
|
|
|
-----------
|
|
|
|
Pacman is a package management utility that tracks installed packages on a Linux
|
|
|
|
system. It features dependency support, package groups, install and uninstall
|
|
|
|
hooks, and the ability to sync your local machine with a remote ftp server to
|
|
|
|
automatically upgrade packages. Pacman packages are a zipped tar format.
|
|
|
|
|
|
|
|
Since version 3.0.0, pacman has been the frontend to manlink:libalpm[3], the
|
|
|
|
"Arch Linux Package Management" library. This library allows alternative front
|
|
|
|
ends to be written (for instance, a GUI front end).
|
|
|
|
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
Operations
|
2007-07-01 17:58:46 -04:00
|
|
|
----------
|
2007-07-02 16:30:39 -04:00
|
|
|
*-A, --add* (deprecated)::
|
2007-07-01 17:58:46 -04:00
|
|
|
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
|
|
|
|
database will be updated. The package will not be installed if another
|
|
|
|
version is already installed. *NOTE*: please use `--upgrade` in place of
|
|
|
|
this option.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-F, --freshen*::
|
2007-07-01 17:58:46 -04:00
|
|
|
This is like `--upgrade` except it will only upgrade packages already
|
|
|
|
installed on the system.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-Q, --query*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Query the package database. This operation allows you to view installed
|
|
|
|
packages and their files, as well as meta-information about individual
|
|
|
|
packages (dependencies, conflicts, install date, build date, size). This
|
|
|
|
can be run against the local package database or can be used on
|
|
|
|
individual `.tar.gz` packages. See <<QO,Query Options>> below.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-R, --remove*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Remove a package from the system. Files belonging to the specified
|
|
|
|
package will be deleted, and the database will be updated. Most
|
|
|
|
configuration files will be saved with a `.pacsave` extension unless the
|
|
|
|
`--nosave` option is used. See <<RO,Remove Options>> below.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-S, --sync*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Synchronize packages. Packages are installed directly from the ftp
|
|
|
|
servers, including all dependencies required to run the packages. For
|
|
|
|
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 that are out of date. See <<SO,Sync Options>> below.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-U, --upgrade*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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
|
|
|
|
<<HCF,Handling Config Files>> for an explanation on how
|
|
|
|
pacman takes care of config files.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-V, --version*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Display version and exit.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-h, --help*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Display syntax for the given operation. If no operation was supplied
|
|
|
|
then the general syntax is shown.
|
|
|
|
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
Options
|
2007-07-01 17:58:46 -04:00
|
|
|
-------
|
2007-07-02 16:30:39 -04:00
|
|
|
*--ask* <'number'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
Pre-specify answers to questions. It is doubtful whether this option
|
|
|
|
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
|
|
|
|
should just dump it.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-b, --dbpath* <'path'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
Specify an alternative database location (default is `/var/lib/pacman`).
|
|
|
|
This should not be used unless you know what you are doing.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-d, --nodeps*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Skips all dependency checks. Normally, pacman will always check a
|
|
|
|
package's dependency fields to ensure that all dependencies are
|
|
|
|
installed and there are no package conflicts in the system.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-f, --force*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Bypass file conflict checks and overwrite conflicting files. If the
|
|
|
|
package that is about to be installed contains files that are already
|
|
|
|
installed, this option will cause all those files to be overwritten.
|
|
|
|
This option should be used with care, ideally not at all.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-r, --root* <'path'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
Specify an alternative installation root (default is `/`). This should
|
|
|
|
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
|
|
|
|
temporary mounted partition which is "owned" by another system. By using
|
|
|
|
this option you not only specify where the software should be installed,
|
|
|
|
but you also specify which package database and cache location to use.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-v, --verbose*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Output more status messages, such as the Root and DBPath.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*--cachedir* <'dir'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
Specify an alternative package cache location (default is
|
|
|
|
`/var/cache/pacman/pkg`). This should not be used unless you know what
|
|
|
|
you are doing.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*--config* <'file'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
Specify an alternate configuration file.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*--noconfirm*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*--noprogressbar*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Do not show a progress bar when downloading files. This can be useful
|
|
|
|
for scripts that call pacman and capture the output.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*--noscriptlet*::
|
2007-07-01 17:58:46 -04:00
|
|
|
If an install scriptlet exists, do not execute it. Do not use this
|
|
|
|
unless you know what you are doing.
|
|
|
|
|
|
|
|
|
|
|
|
Query Options[[QO]]
|
|
|
|
-------------------
|
2007-07-02 16:30:39 -04:00
|
|
|
*-c, --changelog*::
|
2007-07-01 17:58:46 -04:00
|
|
|
View the ChangeLog of a package. Not every package will provide one but
|
|
|
|
it will be shown if available.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-e, --orphans*::
|
2007-07-01 17:58:46 -04:00
|
|
|
List all packages that were pulled in by a previously installed package
|
|
|
|
but no longer required by any installed package.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-g, --groups*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Display all packages that are members of a named group. If not name is
|
|
|
|
specified, list all grouped packages.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-i, --info*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Display information on a given package. The `-p` option can be used if
|
|
|
|
querying a package file instead of the local database.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-l, --list*::
|
2007-07-01 17:58:46 -04:00
|
|
|
List all files owned by a given package. Multiple packages can be
|
|
|
|
specified on the command line.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-m, --foreign*::
|
2007-07-01 17:58:46 -04:00
|
|
|
List all packages that were not found in the sync database(s). Typically
|
|
|
|
these are packages that were downloaded manually and installed with
|
|
|
|
`--upgrade`.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-o, --owns* <'file'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
Search for the package that owns file.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-p, --file*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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.
|
|
|
|
This is useful in combination with `--info` and `--list`.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-s, --search* <'regexp'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
This will search each locally-installed package for names or
|
|
|
|
descriptions that matche regexp.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-u, --upgrades*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Lists all packages that are out of date on the local system. This option
|
|
|
|
works best if the sync database is refreshed using `-Sy`.
|
|
|
|
|
|
|
|
|
|
|
|
Remove Options[[RO]]
|
|
|
|
--------------------
|
2007-07-02 16:30:39 -04:00
|
|
|
*-c, --cascade*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Remove all target packages, as well as all packages that depend on one
|
|
|
|
or more target packages. This operation is recursive.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-k, --keep*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Removes the database entry only. Leaves all files in place.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-n, --nosave*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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 should be renamed with a .pacsave extension.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-s, --recursive*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Remove each target specified including all dependencies, provided that
|
|
|
|
(A) they are not required by other packages; and (B) they were not
|
|
|
|
explicitly installed by the user. This option is analogous to a
|
|
|
|
backwards `--sync` operation.
|
|
|
|
|
|
|
|
|
|
|
|
Sync Options[[SO]]
|
|
|
|
------------------
|
2007-07-02 16:30:39 -04:00
|
|
|
*-c, --clean*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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
|
|
|
|
`--clean` switch to remove old packages; use two to remove all packages
|
|
|
|
from the cache.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-e, --dependsonly*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-g, --groups*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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
|
|
|
|
view all groups and their members.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-i, --info*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Display dependency and other information for a given package. This will
|
|
|
|
search through all repositories for a matching package.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-l, --list*::
|
2007-07-01 17:58:46 -04:00
|
|
|
List all packages in the specified repositories. Multiple repositories
|
|
|
|
can be specified on the command line.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-p, --print-uris*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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
|
|
|
|
downloaded at a later time, using a program like wget.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-s, --search* <'regexp'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
This will search each package in the sync databases for names or
|
|
|
|
descriptions that match regexp.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-u, --sysupgrade*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Upgrades all packages that are out of date. Each currently-installed
|
|
|
|
package will be examined and upgraded if a newer package exists. A
|
|
|
|
report of all packages to upgrade will be presented and the operation
|
|
|
|
will not proceed without user confirmation. Dependencies are
|
|
|
|
automatically resolved at this level and will be installed/upgraded if
|
|
|
|
necessary.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-w, --downloadonly*::
|
2007-07-01 17:58:46 -04:00
|
|
|
Retrieve all packages from the server, but do not install/upgrade
|
|
|
|
anything.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*-y, --refresh*::
|
2007-07-01 17:58:46 -04:00
|
|
|
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
|
|
|
|
`--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.
|
|
|
|
|
2007-07-02 16:30:39 -04:00
|
|
|
*--ignore* <'package'>::
|
2007-07-01 17:58:46 -04:00
|
|
|
Directs pacman to ignore upgrades of package even if there is one
|
|
|
|
available.
|
|
|
|
|
|
|
|
|
|
|
|
Handling Config Files[[HCF]]
|
|
|
|
----------------------------
|
|
|
|
Pacman uses the same logic as rpm to determine action against files that are
|
|
|
|
designated to be backed up. During an upgrade, 3 md5 hashes are used for each
|
|
|
|
backup file to determine the required action: one for the original file
|
|
|
|
installed, one for the new file that's about to be installed, and one for the
|
|
|
|
actual file existing on the filesystem. After comparing these 3 hashes, the
|
|
|
|
follow scenarios can result:
|
|
|
|
|
|
|
|
original=X, current=X, new=X::
|
|
|
|
All three files are the same, so overwrites are not an issue Install the
|
|
|
|
new file.
|
|
|
|
|
|
|
|
original=X, current=X, new=Y::
|
|
|
|
The current file is the same as the original but the new one differs.
|
|
|
|
Since the user did not ever modify the file, and the new one may contain
|
|
|
|
improvements or bugfixes, install the new file.
|
|
|
|
|
|
|
|
original=X, current=Y, new=X::
|
|
|
|
Both package versions contain the exact same file, but the one on the
|
|
|
|
filesystem has been modified. Leave the current file in place.
|
|
|
|
|
|
|
|
original=X, current=Y, new=Y::
|
|
|
|
The new file is identical to the current file. Install the new file.
|
|
|
|
|
|
|
|
original=X, current=Y, new=Z::
|
|
|
|
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
|
|
|
|
necessary changes into the original file.
|
|
|
|
|
|
|
|
|
|
|
|
Configuration
|
|
|
|
-------------
|
|
|
|
See manlink:pacman.conf[5] for more details on configuring pacman using the
|
|
|
|
`pacman.conf` file.
|
|
|
|
|
|
|
|
|
|
|
|
See Also
|
|
|
|
--------
|
|
|
|
manlink:pacman.conf[5], manlink:makepkg[8], manlink:libalpm[3]
|
|
|
|
|
|
|
|
include::footer.txt[]
|