From 076b6184de2b20e9b26225d93f6f3a7030504109 Mon Sep 17 00:00:00 2001 From: Eli Schwartz Date: Thu, 3 May 2018 00:10:21 -0400 Subject: Ensure better text editor automatic filetype detection Since we no longer use vim-specific modelines, use the .asciidoc file extension which is, well, reserved for asciidoc formatted files. This should presumably work everywhere without needing editor-specific workarounds and configuration. Also add a shebang to makepkg.conf to indicate it contains bash content. Signed-off-by: Eli Schwartz Signed-off-by: Allan McRae --- doc/pacman.8.txt | 568 ------------------------------------------------------- 1 file changed, 568 deletions(-) delete mode 100644 doc/pacman.8.txt (limited to 'doc/pacman.8.txt') diff --git a/doc/pacman.8.txt b/doc/pacman.8.txt deleted file mode 100644 index ebe16e61..00000000 --- a/doc/pacman.8.txt +++ /dev/null @@ -1,568 +0,0 @@ -pacman(8) -========= - -Name ----- -pacman - package manager utility - - -Synopsis --------- -'pacman' [options] [targets] - - -Description ------------ -Pacman is a package management utility that tracks installed packages on a Linux -system. It features dependency support, package groups, install and uninstall -scripts, and the ability to sync your local machine with a remote repository to -automatically upgrade packages. Pacman packages are a zipped tar format. - -Since version 3.0.0, pacman has been the front-end to linkman:libalpm[3], the -``Arch Linux Package Management'' library. This library allows alternative -front-ends to be written (for instance, a GUI front-end). - -Invoking pacman involves specifying an operation with any potential options and -targets to operate on. A 'target' is usually a package name, file name, URL, or -a search string. Targets can be provided as command line arguments. -Additionally, if stdin is not from a terminal and a single hyphen (-) is passed -as an argument, targets will be read from stdin. - - -Operations ----------- -*-D, \--database*:: - Operate on the package database. This operation allows you to modify - certain attributes of the installed packages in pacman's database. It - also allows you to check the databases for internal consistency. - See <> below. - -*-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 package files. In the first case, if no package names - are provided in the command line, all installed packages will be - queried. Additionally, various filters can be applied on the package - list. See <> below. - -*-R, \--remove*:: - Remove package(s) from the system. Groups can also be specified to be - removed, in which case every package in that group will be removed. - 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 <> below. - -*-S, \--sync*:: - Synchronize packages. Packages are installed directly from the remote - repositories, 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 - repository, the repository can be explicitly specified to clarify the - package to install: `pacman -S testing/qt`. You can also specify version - requirements: `pacman -S "bash>=3.2"`. Quotes are needed, otherwise the - shell interprets ">" as redirection to a file. -+ -In addition to packages, groups can be specified as well. For example, if -gnome is a defined package group, then `pacman -S gnome` will provide a -prompt allowing you to select which packages to install from a numbered list. -The package selection is specified using a space- and/or comma-separated list of -package numbers. Sequential packages may be selected by specifying the first -and last package numbers separated by a hyphen (`-`). Excluding packages is -achieved by prefixing a number or range of numbers with a caret (`^`). -+ -Packages that provide other packages are also handled. For example, `pacman -S -foo` will first look for a foo package. If foo is not found, packages that -provide the same functionality as foo will be searched for. If any package is -found, it will be installed. A selection prompt is provided if multiple packages -providing foo are found. -+ -You can also use `pacman -Su` to upgrade all packages that are out-of-date. See -<> below. When upgrading, pacman performs version comparison -to determine which packages need upgrading. This behavior operates as follows: - - Alphanumeric: - 1.0a < 1.0b < 1.0beta < 1.0p < 1.0pre < 1.0rc < 1.0 < 1.0.a < 1.0.1 - Numeric: - 1 < 1.0 < 1.1 < 1.1.1 < 1.2 < 2.0 < 3.0.0 -+ -Additionally, version strings can have an 'epoch' value defined that will -overrule any version comparison, unless the epoch values are equal. This is -specified in an `epoch:version-rel` format. For example, `2:1.0-1` is always -greater than `1:3.6-1`. - -*-T, \--deptest*:: - Check dependencies; this is useful in scripts such as makepkg to check - installed packages. This operation will check each dependency specified and - return a list of dependencies that are not currently satisfied on the system. - This operation accepts no other options. Example usage: `pacman -T qt - "bash>=3.2"`. - -*-U, \--upgrade*:: - Upgrade or add package(s) to the system and install the required - dependencies from sync repositories. Either a URL or file path can be - specified. This is a ``remove-then-add'' process. See <> below; also see <> for an explanation - on how pacman takes care of configuration files. - -*-F, \--files*:: - Query the files database. This operation allows you to look for packages - owning certain files or display files owned by certain packages. Only - packages that are part of your sync databases are searched. See - <> below. - -*-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 -------- -*-b, \--dbpath* :: - Specify an alternative database location (the default is - +{localstatedir}/lib/pacman+). This should not be used unless you know what - you are doing. - *NOTE*: If specified, this is an absolute path, and the root path is - not automatically prepended. - -*-v, \--verbose*:: - Output paths such as as the Root, Conf File, DB Path, Cache Dirs, etc. - -*\--arch* :: - Specify an alternate architecture. - -*\--cachedir* :: - Specify an alternative package cache location (the default is - +{localstatedir}/cache/pacman/pkg+). Multiple cache directories can be - specified, and they are tried in the order they are passed to pacman. - *NOTE*: This is an absolute path, and the root path is not automatically - prepended. - -*\--color* :: - Specify when to enable coloring. Valid options are 'always', 'never', or - 'auto'. 'always' forces colors on; 'never' forces colors off; and 'auto' only - automatically enables colors when outputting onto a tty. - -*\--config* :: - Specify an alternate configuration file. - -*\--debug*:: - Display debug messages. When reporting bugs, this option is recommended - to be used. - -*\--gpgdir* :: - Specify a directory of files used by GnuPG to verify package signatures - (the default is +{sysconfdir}/pacman.d/gnupg+). This directory should contain - two files: `pubring.gpg` and `trustdb.gpg`. `pubring.gpg` holds the public keys - of all packagers. `trustdb.gpg` contains a so-called trust database, which - specifies that the keys are authentic and trusted. *NOTE*: This is an absolute - path, and the root path is not automatically prepended. - -*\--hookdir* :: - Specify a alternative directory containing hook files (the default is - +{sysconfdir}/pacman.d/hooks+). Multiple hook directories can be specified - with hooks in later directories taking precedence over hooks in earlier - directories. *NOTE*: This is an absolute path, and the root path is not - automatically prepended. - -*\--logfile* :: - Specify an alternate log file. This is an absolute path, regardless of - the installation root setting. - -*\--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. - -*\--confirm*:: - Cancels the effects of a previous '\--noconfirm'. - -*\--disable-download-timeout*:: - Disable defaults for low speed limit and timeout on downloads. Use this - if you have issues downloading files with proxy and/or security gateway. - -*\--sysroot* :: - Specify an alternative system root. Pacman will chroot and chdir into the - system root prior to running. This allows mounted guest systems to be - properly operated on. Any other paths given will be interpreted as relative - to the system root. Requires root privileges. - - -Transaction Options (apply to '-S', '-R' and '-U') --------------------------------------------------- -*-d, \--nodeps*:: - Skips dependency version checks. Package names are still checked. 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. Specify this option twice to skip all dependency checks. - -*\--assume-installed* :: - Add a virtual package "package" with version "version" to the transaction - to satisfy dependencies. This allows to disable specific dependency checks - without affecting all dependency checks. To disable all dependency - checking, see the '\--nodeps' option. - -*\--dbonly*:: - Adds/removes the database entry only, leaving all files in place. - -*\--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. - -*-p, \--print*:: - Only print the targets instead of performing the actual operation (sync, - remove or upgrade). Use '\--print-format' to specify how targets are - displayed. The default format string is "%l", which displays URLs with - '-S', file names with '-U', and pkgname-pkgver with '-R'. - -*\--print-format* :: - Specify a printf-like format to control the output of the '\--print' - operation. The possible attributes are: "%n" for pkgname, "%v" for pkgver, - "%l" for location, "%r" for repository, and "%s" for size. Implies '\--print'. - - -Upgrade Options (apply to '-S' and '-U')[[UO]] ----------------------------------------------- -*\--asdeps*:: - Install packages non-explicitly; in other words, 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. - -*\--asexplicit*:: - Install packages explicitly; in other words, fake their install reason to - be explicitly installed. This is useful if you want to mark a dependency - as explicitly installed so it will not be removed by the '\--recursive' - remove operation. - -*\--ignore* :: - 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* :: - 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. - -*\--needed*:: - Do not reinstall the targets that are already up-to-date. - -*\--overwrite* :: - Bypass file conflict checks and overwrite conflicting files. If the - package that is about to be installed contains files that are already - installed and match 'glob', this option will cause all those files to be - overwritten. Using '\--overwrite' will not allow overwriting a directory - with a file or installing packages with conflicting files and directories. - Multiple patterns can be specified by separating them with a comma. May be - specified multiple times. Patterns can be negated, such that files - matching them will not be overwritten, by prefixing them with an - exclamation mark. Subsequent matches will override previous ones. A leading - literal exclamation mark or backslash needs to be escaped. - - -Query Options (apply to '-Q')[[QO]] ------------------------------------ -*-c, \--changelog*:: - View the ChangeLog of a package if it exists. - -*-d, \--deps*:: - Restrict or filter output to 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. - -*-e, \--explicit*:: - Restrict or filter output to explicitly installed packages. This option - can be combined with '-t' to list explicitly installed packages that - are not required by any other package. - -*-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. - -*-k, \--check*:: - Check that all files owned by the given package(s) are present on the - system. If packages are not specified or filter flags are not provided, - check all installed packages. Specifying this option twice will perform - more detailed file checking (including permissions, file sizes, and - modification times) for packages that contain the needed mtree file. - -*-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'. - -*-n, \--native*:: - Restrict or filter output to packages that are found in the sync - database(s). This is the inverse filter of '\--foreign'. - -*-o, \--owns* :: - Search for packages that own the specified file(s). The path can be - relative or absolute, and one or more files can be specified. - -*-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'. - -*-q, \--quiet*:: - Show less information for certain query operations. This is useful when - pacman's output is processed in a script. Search will only show package - names and not version, group, and description information; owns will - only show package names instead of "file is owned by pkg" messages; group - will only show package names and omit group names; list will only show - files and omit package names; check will only show pairs of package names - and missing files; a bare query will only show package names - rather than names and versions. - -*-s, \--search* :: - Search each locally-installed package for names or descriptions that - match `regexp`. When including multiple search terms, only packages - with descriptions matching ALL of those terms are returned. - -*-t, \--unrequired*:: - Restrict or filter output to print only packages neither required nor - optionally required by any currently installed package. Specify this - option twice to include packages which are optionally, but not directly, - required by another package. - -*-u, \--upgrades*:: - Restrict or filter output to packages that are out-of-date on the local - system. Only package versions are used to find outdated packages; - replacements are not checked here. This option works best if the sync - database is refreshed using '-Sy'. - - -Remove Options (apply to '-R')[[RO]] ------------------------------------- -*-c, \--cascade*:: - Remove all target packages, as well as all packages that depend on one - or more target packages. This operation is recursive and must be used - with care, since it can remove many potentially needed packages. - -*-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 of their dependencies, provided - that (A) they are not required by other packages; and (B) they were not - explicitly installed by the user. This operation is recursive and analogous - to a backwards '\--sync' operation, and it helps keep a clean system without - orphans. If you want to omit condition (B), pass this option twice. - -*-u, \--unneeded*:: - Removes targets that are not required by any other packages. - This is mostly useful when removing a group without using the '-c' option, - to avoid breaking any dependencies. - - -Sync Options (apply to '-S')[[SO]] ----------------------------------- -*-c, \--clean*:: - Remove packages that are no longer installed from the cache as well as - currently unused sync databases to free up disk space. When pacman - downloads packages, it saves them in a cache directory. In addition, - databases are saved for every sync DB you download from and are not - deleted even if they are removed from the configuration file - linkman:pacman.conf[5]. Use one '\--clean' switch to only remove - packages that are no longer installed; use two to remove all files - from the cache. In both cases, you will have a yes or no option to - remove packages and/or unused downloaded databases. -+ -If you use a network shared cache, see the 'CleanMethod' option in -linkman:pacman.conf[5]. - -*-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 information on a given sync database package. Passing two '\--info' - or '-i' flags will also display those packages in all repositories that - depend on this package. - -*-l, \--list*:: - List all packages in the specified repositories. Multiple repositories - can be specified on the command line. - -*-q, \--quiet*:: - Show less information for certain sync operations. This is useful when - pacman's output is processed in a script. Search will only show package - names and not repository, version, group, and description information; list - will only show package names and omit databases and versions; group will - only show package names and omit group names. - -*-s, \--search* :: - This will search each package in the sync databases for names or - descriptions that match `regexp`. When you include multiple search - terms, only packages with descriptions matching ALL of those terms will - be returned. - -*-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. -+ -Pass this option twice to enable package downgrades; in this case, pacman will -select sync packages whose versions do not match with the local versions. This -can be useful when the user switches from a testing repository to a stable one. -+ -Additional targets can also be specified manually, so that '-Su foo' will do a -system upgrade and install/upgrade the "foo" package in the same operation. - -*-w, \--downloadonly*:: - Retrieve all packages from the server, but do not install/upgrade anything. - -*-y, \--refresh*:: - Download a fresh copy of the master package database from the server(s) - defined in linkman:pacman.conf[5]. 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 databases, even if they appear to be - up-to-date. - - -Database Options (apply to '-D')[[QO]] --------------------------------------- -*\--asdeps* :: - Mark a package as non-explicitly installed; in other words, set their install - reason to be installed as a dependency. - -*\--asexplicit* :: - Mark a package as explicitly installed; in other words, set their install - reason to be explicitly installed. This is useful it you want to keep a - package installed even when it was initially installed as a dependency - of another package. - -*-k, \--check*:: - Check the local package database is internally consistent. This will - check all required files are present and that installed packages have - the required dependencies, do not conflict and that multiple packages - do not own the same file. Specifying this option twice will perform - a check on the sync databases to ensure all specified dependencies - are available. - -*-q, \--quiet*:: - Suppress messages on successful completion of database operations. - -File Options (apply to '-F')[[FO]] ----------------------------------- -*-y, --refresh*:: - Download fresh package databases from the server. Use twice to force a - refresh even if databases are up to date. - -*-l, \--list*:: - List the files owned by the queried package. - -*-s, \--search*:: - Search package file names for matching strings. - -*-x, --regex*:: - Treat arguments to '--search' as regular expressions. - -*-o, \--owns*:: - Search for packages that own a particular file. - -*-q, \--quiet*:: - Show less information for certain file operations. This is useful when - pacman's output is processed in a script, however, you may want to use - '--machinereadable' instead. - -*--machinereadable*:: - Use a machine readable output format for '--list', '--search' and - '--owns'. The format is 'repository\0pkgname\0pkgver\0path\n' with '\0' - being the NULL character and '\n' a linefeed. - -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, three 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 is about to be installed, and one for the -actual file existing on the file system. After comparing these three 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 bug fixes, install the new file. - -original=X, current=Y, new=X:: - Both package versions contain the exact same file, but the one on the - file system 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. - -original=NULL, current=Y, new=Z:: - The package was not previously installed, and the file already exists on the - file system. 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. - - -Examples --------- - -pacman -Ss ne.hack:: - Search for regexp "ne.hack" in package database. - -pacman -S gpm:: - Download and install gpm including dependencies. - -pacman -U /home/user/ceofhack-0.6-1-x86_64.pkg.tar.gz:: - Install ceofhack-0.6-1 package from a local file. - -pacman -Syu:: - Update package list and upgrade all packages afterwards. - -pacman -Syu gpm:: - Update package list, upgrade all packages, and then install gpm if it - wasn't already installed. - - -Configuration -------------- -See linkman:pacman.conf[5] for more details on configuring pacman using the -'pacman.conf' file. - - -See Also --------- -linkman:alpm-hooks[5], linkman:libalpm[3], linkman:makepkg[8], -linkman:pacman.conf[5] - -include::footer.txt[] -- cgit v1.2.3-54-g00ecf