diff options
Diffstat (limited to 'doc/pacman.8.txt')
-rw-r--r-- | doc/pacman.8.txt | 319 |
1 files changed, 319 insertions, 0 deletions
diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt new file mode 100644 index 00000000..9e00d36e --- /dev/null +++ b/doc/pacman.8.txt @@ -0,0 +1,319 @@ +///// +vim:set ts=4 sw=4 syntax=asciidoc noet: +///// +pacman(8) +========= + +Name +---- +pacman - package manager utility + + +Synopsis +-------- +'pacman' <operation> [options] [packages] + + +Description +----------- +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). + + +Operations +---------- +*-A, \--add* (deprecated):: + 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. + +*-Q, \--query*:: + 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. + +*-R, \--remove*:: + 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. + +*-S, \--sync*:: + 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. If a package name exists in more than one repo, the + repo can be explicitly specified to clarify the package to install: + `pacman -S testing/qt`. You can also use `pacman -Su` to upgrade all + packages that are out of date. See <<SO,Sync Options>> below. + +*-U, \--upgrade*:: + 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. + +*-V, \--version*:: + Display version and exit. + +*-h, \--help*:: + Display syntax for the given operation. If no operation was supplied + then the general syntax is shown. + + +Options +------- +*\--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 + 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. + +*-b, \--dbpath* <'path'>:: + Specify an alternative database location (default is ``/var/lib/pacman''). + This should not be used unless you know what you are doing. + +*-d, \--nodeps*:: + 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. + +*-f, \--force*:: + 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. + +*-r, \--root* <'path'>:: + 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. + +*-v, --verbose*:: + Output more status messages, such as the Root, DBPath, CacheDir, etc. + +*\--cachedir* <'dir'>:: + Specify an alternative package cache location (default is + ``/var/cache/pacman/pkg''). Multiple cache directories can be specified, + and they are tried in the order they are passed to pacman. + +*\--config* <'file'>:: + Specify an alternate configuration file. + +*\--noconfirm*:: + 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. + +*\--noprogressbar*:: + Do not show a progress bar when downloading files. This can be useful + for scripts that call pacman and capture the output. + +*\--noscriptlet*:: + If an install scriptlet exists, do not execute it. Do not use this + unless you know what you are doing. + + +Query Options[[QO]] +------------------- +*-c, \--changelog*:: + View the ChangeLog of a package. Not every package will provide one but + it will be shown if available. + +*-d, \--deps*:: + List all packages installed as dependencies. This option can be combined + with '-t' for listing real orphans- packages that were installed as + dependencies but are no longer required by any installed package. ('-Qdt' + is equivalent to the pacman 3.0.X '-Qe' option.) + +*-e, \--explicit*:: + List all packages explicitly installed. This option can be combined with + '-t' to list top-level packages- those packages that were explicitly + installed but are not required by any other package. ('-Qet' is equivalent + to the pacman 2.9.X '-Qe' option.) + +*-g, \--groups*:: + Display all packages that are members of a named group. If a name is not + specified, list all grouped packages. + +*-i, \--info*:: + Display information on a given package. The '-p' option can be used if + querying a package file instead of the local database. Passing two + '\--info' or '-i' flags will also display the list of backup files and + their modification states. + +*-l, \--list*:: + List all files owned by a given package. Multiple packages can be + specified on the command line. + +*-m, \--foreign*:: + Restrict or filter output to packages that were not found in the sync + database(s). Typically these are packages that were downloaded manually + and installed with '\--upgrade'. + +*-o, \--owns* <'file'>:: + Search for the package that owns file. The path can be relative or + absolute. + +*-p, \--file*:: + 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'. + +*-s, \--search* <'regexp'>:: + This will search each locally-installed package for names or + descriptions that match `regexp`. + +*-t, \--orphans*:: + Restrict or filter output to packages not required by any currently + installed package. + +*-u, \--upgrades*:: + 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]] +-------------------- +*-c, \--cascade*:: + Remove all target packages, as well as all packages that depend on one + or more target packages. This operation is recursive. + +*-k, \--keep*:: + Removes the database entry only. Leaves all files in place. + +*-n, \--nosave*:: + 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. + +*-s, \--recursive*:: + 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]] +------------------ +*-c, \--clean*:: + 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. + +*-e, \--dependsonly*:: + 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. + +*-g, \--groups*:: + 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. + +*-i, \--info*:: + Display dependency and other information for a given package. This will + search through all repositories for a matching package. + +*-l, \--list*:: + List all packages in the specified repositories. Multiple repositories + can be specified on the command line. + +*-p, \--print-uris*:: + 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. + +*-s, \--search* <'regexp'>:: + This will search each package in the sync databases for names or + descriptions that match `regexp`. + +*-u, \--sysupgrade*:: + 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. + +*-w, \--downloadonly*:: + Retrieve all packages from the server, but do not install/upgrade + anything. + +*-y, \--refresh*:: + 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. + +*\--needed*:: + Only install the targets that are not already installed and up-to-date. + +*\--ignore* <'package'>:: + Directs pacman to ignore upgrades of package even if there is one + available. Multiple packages can be specified by separating them + with a comma. + +*\--ignoregroup* <'group'>:: + Directs pacman to ignore upgrades of all packages in 'group' even if + there is one available. Multiple groups can be specified by + separating them with a comma. + + +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[] |