diff options
Diffstat (limited to 'doc/pacman.8.html')
-rw-r--r-- | doc/pacman.8.html | 306 |
1 files changed, 306 insertions, 0 deletions
diff --git a/doc/pacman.8.html b/doc/pacman.8.html new file mode 100644 index 00000000..e10c2b27 --- /dev/null +++ b/doc/pacman.8.html @@ -0,0 +1,306 @@ +Content-type: text/html + +<HTML><HEAD><TITLE>Manpage of pacman</TITLE> +</HEAD><BODY> +<H1>pacman</H1> +Section: (8)<BR>Updated: January 20, 2003<BR><A HREF="#index">Index</A> +<A HREF="http://localhost/cgi-bin/man/man2html">Return to Main Contents</A><HR> + +<A NAME="lbAB"> </A> +<H2>NAME</H2> + +pacman - package manager utility +<A NAME="lbAC"> </A> +<H2>SYNOPSIS</H2> + +<B>pacman <operation> [options] <package> [package] ...</B> +<A NAME="lbAD"> </A> +<H2>DESCRIPTION</H2> + +<B>pacman</B> is a <I>package management</I> utility that tracks installed +packages on a linux system. It has simple dependency support and the ability +to connect to a remote ftp server and automatically upgrade packages on +the local system. pacman package are <I>gzipped tar</I> format. +<A NAME="lbAE"> </A> +<H2>OPERATIONS</H2> + +<DL COMPACT> +<DT><B>-A, --add</B> + +<DD> +Add a package to the system. Package will be uncompressed +into the installation root and the database will be updated. +<DT><B>-R, --remove</B> + +<DD> +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 +<I>.pacsave</I> extension unless the <B>--nosave</B> option was +used. +<DT><B>-U, --upgrade</B> + +<DD> +Upgrade a package. This is essentially a "remove-then-add" +process. See <B>HANDLING CONFIG FILES</B> for an explanation +on how pacman takes care of config files. +<DT><B>-F, --freshen</B> + +<DD> +This is like --upgrade except that, unlike --upgrade, this will only +upgrade packages that are already installed on your system. +<DT><B>-Q, --query</B> + +<DD> +Query the package database. This operation allows you to +view installed packages and their files, as well as meta-info +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 +<B>QUERY OPTIONS</B> below. +<DT><B>-S, --sync</B> + +<DD> +Synchronize packages. With this function you can install packages +directly from the ftp servers, complete with all dependencies required +to run the packages. For example, <B>pacman -S qt</B> will download +qt and all the packages it depends on and install them. You could also use +<B>pacman -Su</B> to upgrade all packages that are out of date (see below). +<DT><B>-V, --version</B> + +<DD> +Display version and exit. +<DT><B>-h, --help</B> + +<DD> +Display syntax for the given operation. If no operation was +supplied then the general syntax is shown. +</DL> +<A NAME="lbAF"> </A> +<H2>OPTIONS</H2> + +<DL COMPACT> +<DT><B>-v, --verbose</B> + +<DD> +Output more status and error messages. +<DT><B>-f, --force</B> + +<DD> +Bypass file conflict checks,, overwriting 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. +<DT><B>-d, --nodeps</B> + +<DD> +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. This +switch disables these checks. +<DT><B>-n, --nosave</B> + +<DD> +(only used with <B>--remove</B>) +Instructs pacman to ignore file backup designations. Normally, when +a file is about to be <I>removed</I> from the system the database is first +checked to see if the file should be renamed to a .pacsave extension. If +<B>--nosave</B> is used, these designations are ignored and the files are +removed. +<DT><B>-r, --root <path></B> + +<DD> +Specify alternative installation root (default is "/"). This +should <I>not</I> be used as a way to install software into +e.g. /usr/local instead of /usr. Instead this should be 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 to use. +</DL> +<A NAME="lbAG"> </A> +<H2>SYNC OPTIONS</H2> + +<DL COMPACT> +<DT><B>-y, --refresh</B> + +<DD> +Download a fresh copy of the master package list from the ftp server +defined in <I>/etc/pacman.conf</I>. This should typically be used each +time you use <B>--sysupgrade</B>. +<DT><B>-u, --sysupgrade</B> + +<DD> +Upgrades all packages that are out of date. pacman will examine every +package installed on the system, and if a newer package exists on the +server it will upgrade. pacman will present a report of all packages +it wants to upgrade and will not proceed without user confirmation. +Dependencies are automatically resolved at this level and will be +installed/upgraded if necessary. +<DT><B>-s, --search <string></B> + +<DD> +This will search each package in the package list for names or descriptions +that contains <string>. +<DT><B>-w, --downloadonly</B> + +<DD> +Retrieve all packages from the server, but do not install/upgrade anything. +<DT><B>-c, --clean</B> + +<DD> +Remove packages from the cache. When pacman downloads packages, +it saves them in <I>/var/cache/pacman/pkg</I>. If you need to free up +diskspace, you can remove these packages by using the --clean option. +</DL> +<A NAME="lbAH"> </A> +<H2>QUERY OPTIONS</H2> + +<DL COMPACT> +<DT><B>-o, --owns <file></B> + +<DD> +Search for the package that owns <file>. +<DT><B>-l, --list</B> + +<DD> +List all files owned by <package>. Multiple packages can be specified on +the command line. +<DT><B>-i, --info</B> + +<DD> +Display information on a given package. If it is used with the <B>-p</B> +option then the .PKGINFO file will be printed. +<DT><B>-p, --file</B> + +<DD> +Tells pacman that the package supplied on the command line is a +file, not an entry in the database. Pacman will decompress the +file and query it. This is useful with <B>--info</B> and <B>--list</B>. +</DL> +<A NAME="lbAI"> </A> +<H2>HANDLING CONFIG FILES</H2> + +pacman uses the same logic as rpm to determine action against files +that are designated to be backed up. During an upgrade, it uses 3 +md5 hashes 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: +<DL COMPACT> +<DT>original=<B>X</B>, current=<B>X</B>, new=<B>X</B><DD> +All three files are the same, so we win either way. Install the new file. +<DT>original=<B>X</B>, current=<B>X</B>, new=<B>Y</B><DD> +The current file is un-altered from the original but the new one is +different. Since the user did not ever modify the file, and the new +one may contain improvements/bugfixes, we install the new file. +<DT>original=<B>X</B>, current=<B>Y</B>, new=<B>X</B><DD> +Both package versions contain the exact same file, but the one +on the filesystem has been modified since. In this case, we leave +the current file in place. +<DT>original=<B>X</B>, current=<B>Y</B>, new=<B>Y</B><DD> +The new one is identical to the current one. Win win. Install the new file. +<DT>original=<B>X</B>, current=<B>Y</B>, new=<B>Z</B><DD> +All three files are different. So we install the new file, but back up the +old one to a .pacsave extension. This way the user can move the old configuration +file back into place if he wishes. +</DL> +<A NAME="lbAJ"> </A> +<H2>CONFIGURATION</H2> + +pacman will attempt to read <I>/etc/pacman.conf</I> each time it is invoked. This +configuration file is divided into sections or <I>repositories</I>. Each section +defines a package repository that pacman can use when searching for packages in +--sync mode. The exception to this is the <I>options</I> section, which defines +global options. +<DL COMPACT> +<DT></DL> +<A NAME="lbAK"> </A> +<H2>Example:</H2> + +<DD> +<DL COMPACT><DT><DD> +<PRE> +[options] +NoUpgrade = etc/passed etc/group etc/shadow +NoUpgrade = etc/fstab + +[current] +Server = <A HREF="ftp://ftp.server.org/linux/archlinux/current">ftp://ftp.server.org/linux/archlinux/current</A> +Server = <A HREF="ftp://ftp.mirror.com/arch/current">ftp://ftp.mirror.com/arch/current</A> + +[custom] +Server = <A HREF="local:///home/pkgs">local:///home/pkgs</A> + +</PRE> + +</DL> + +All files listed with a <I>NoUpgrade</I> directive will never be touched during a package +install/upgrade. This directive is only valid in the options section. +<P> +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 square brackets (eg, the two +above are 'current' and 'custom'). Locations are defined with the <I>Server</I> directive and +follow a URL naming structure. Currently only ftp is supported for remote servers. If you +want to use a local directory, you can specify the full path with a '<A HREF="local://'">local://'</A> prefix, as +shown above. +<A NAME="lbAL"> </A> +<H2>USING YOUR OWN REPOSITORY</H2> + +Let's say you have a bunch of custom packages in <I>/home/pkgs</I> and their respective PKGBUILD +files are all in <I>/usr/abs/local</I>. All you need to do is generate a compressed package database +in the <I>/home/pkgs</I> directory so pacman can find it when run with --refresh. +<P> +<DL COMPACT><DT><DD> +<PRE> +# gensync /usr/abs/local /home/pkgs/custom.db.tar.gz +</PRE> + +</DL> + +<P> +The above command will read all PKGBUILD files in /usr/abs/local and generate a compressed +database called /home/pkgs/custom.db.tar.gz. Note that the database must be of the form +<I>{treename}.db.tar.gz</I>, where {treename} is the name of the section defined in the +configuration file. +That's it! Now configure your <I>custom</I> section in the 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 re-generate the database and use pacman's --refresh option. +<A NAME="lbAM"> </A> +<H2>SEE ALSO</H2> + +<B>makepkg</B> is the package-building tool that comes with pacman. +<A NAME="lbAN"> </A> +<H2>AUTHOR</H2> + +<PRE> +Judd Vinet <<A HREF="mailto:jvinet@zeroflux.org">jvinet@zeroflux.org</A>> +</PRE> + +<P> + +<HR> +<A NAME="index"> </A><H2>Index</H2> +<DL> +<DT><A HREF="#lbAB">NAME</A><DD> +<DT><A HREF="#lbAC">SYNOPSIS</A><DD> +<DT><A HREF="#lbAD">DESCRIPTION</A><DD> +<DT><A HREF="#lbAE">OPERATIONS</A><DD> +<DT><A HREF="#lbAF">OPTIONS</A><DD> +<DT><A HREF="#lbAG">SYNC OPTIONS</A><DD> +<DT><A HREF="#lbAH">QUERY OPTIONS</A><DD> +<DT><A HREF="#lbAI">HANDLING CONFIG FILES</A><DD> +<DT><A HREF="#lbAJ">CONFIGURATION</A><DD> +<DT><A HREF="#lbAK">Example:</A><DD> +<DT><A HREF="#lbAL">USING YOUR OWN REPOSITORY</A><DD> +<DT><A HREF="#lbAM">SEE ALSO</A><DD> +<DT><A HREF="#lbAN">AUTHOR</A><DD> +</DL> +<HR> +This document was created by +<A HREF="http://localhost/cgi-bin/man/man2html">man2html</A>, +using the manual pages.<BR> +Time: 17:22:16 GMT, March 04, 2003 +</BODY> +</HTML> |