Pacman Home Page ================ A simple library-based package manager. Introduction ------------ pacman is a utility which manages software packages in Linux. It uses simple compressed files as a package format, and maintains a text-based package database (more of a hierarchy), just in case some hand tweaking is necessary. pacman does not strive to "do everything." It will add, remove and upgrade packages in the system, and it will allow you to query the package database for installed packages, files and owners. It also attempts to handle dependencies automatically and can download packages from a remote server. History ~~~~~~~ Version 2.0 of pacman introduced the ability to sync packages (the '\--sync' option) with a master server through the use of package databases. Prior to this, packages would have to be installed manually using the '\--add' and '\--upgrade' operations. Version 3.0 was the switch to a two-part pacman -- a back-end named libalpm (library for Arch Linux Package Management) and the familiar pacman front-end. Speed in many cases was improved, along with dependency and conflict resolution being able to handle a much wider variety of cases. The switch to a library-based program should also make it easier in the future to develop alternative front ends. Version 4.0 added package signing and verification capabilities to the entire makepkg/repo-add/pacman toolchain via GnuPG and GPGME. Version 5.0 added support for pre/post-transaction hooks and sync database file list operations. Documentation ------------- Man Pages ~~~~~~~~~ There are several man pages available for the programs, utilities, and configuration files dealing with pacman. * linkman:alpm-hooks[5] * linkman:BUILDINFO[5] * linkman:PKGBUILD[5] * linkman:libalpm[3] * linkman:makepkg[8] * linkman:makepkg-template[1] * linkman:makepkg.conf[5] * linkman:pacman[8] * linkman:pacman-key[8] * linkman:pacman-conf[8] * linkman:pacman.conf[5] * linkman:repo-add[8] * linkman:vercmp[8] Changelog ~~~~~~~~~ For a good idea of what is going on in pacman development, take a look at the link:https://git.archlinux.org/pacman.git/[Git summary page] for the project. See the most recent link:https://git.archlinux.org/pacman.git/tree/NEWS[NEWS] file for a not-as-frequently-updated list of changes. However, this should contain the biggest changes in a format more concise than the commit log. Releases -------- [frame="none",grid="none",options="autowidth",cols="3*a"] |====== | [frame="topbot",grid="none",options="header,autowidth"] !====== !Version !Date !5.2.1 !2019-11-01 !5.2.0 !2019-10-21 !5.1.3 !2019-03-01 !5.1.2 !2018-12-25 !5.1.1 !2018-07-27 !5.1.0 !2018-05-28 !5.0.2 !2017-06-03 !5.0.1 !2016-02-23 !5.0.0 !2016-01-30 !4.2.1 !2015-02-20 !4.2.0 !2014-12-19 !4.1.2 !2013-06-18 !4.1.1 !2013-05-07 !4.1.0 !2013-04-01 !4.1.0rc1 !2013-03-09 !4.0.3 !2012-04-07 !4.0.2 !2012-02-11 !4.0.1 !2011-11-20 !4.0.0 !2011-10-13 !4.0.0rc2 !2011-09-22 !4.0.0rc1 !2011-08-11 !3.5.4 !2011-08-10 !3.5.3 !2011-06-07 !3.5.2 !2011-04-18 !3.5.1 !2011-03-23 !3.5.0 !2011-03-16 !3.4.3 !2011-01-22 !3.4.2 !2010-12-29 !3.4.1 !2010-09-03 !3.4.0 !2010-06-16 !3.3.3 !2009-11-10 !3.3.2 !2009-10-05 !3.3.1 !2009-09-22 !3.3.0 !2009-08-02 !3.2.2 !2009-01-05 !3.2.1 !2008-08-26 !3.2.0 !2008-07-30 !3.1.4 !2008-04-01 !====== | [frame="topbot",grid="none",options="header,autowidth"] !====== !Version !Date !3.1.3 !2008-03-06 !3.1.2 !2008-02-20 !3.1.1 !2008-01-20 !3.1.0 !2008-01-09 !3.0.6 !2007-09-16 !3.0.5 !2007-06-17 !3.0.4 !2007-05-08 !3.0.3 !2007-04-28 !3.0.2 !2007-04-23 !3.0.1 !2007-04-04 !3.0.0 !2007-03-25 !2.9.8 !2006-02-02 !2.9.7 !2005-09-16 !2.9.7-TEST3 !2005-09-11 !2.9.7-TEST2 !2005-09-07 !2.9.7-TEST !2005-08-19 !2.9.6 !2005-06-10 !2.9.5 !2005-01-11 !2.9.4 !2004-12-20 !2.9.3 !2004-12-19 !2.9.2 !2004-09-25 !2.9.1 !2004-09-25 !2.9 !2004-09-18 !2.8.4 !2004-08-23 !2.8.3 !2004-08-04 !2.8.2 !2004-07-22 !2.8.1 !2004-07-17 !2.8 !2004-07-03 !2.7.9 !2004-04-30 !2.7.8 !2004-04-29 !====== | [frame="topbot",grid="none",options="header,autowidth"] !====== !Version !Date !2.7.7 !2004-04-15 !2.7.6 !2004-04-04 !2.7.5 !2004-03-02 !2.7.4 !2004-02-18 !2.7.3 !2004-02-07 !2.7.2 !2004-01-04 !2.7.1 !2003-12-21 !2.7 !2003-11-25 !2.6.4 !2003-10-17 !2.6.3 !2003-10-01 !2.6.2 !2003-09-29 !2.6.1 !2003-09-15 !2.6 !2003-09-03 !2.5.1 !2003-07-12 !2.5 !2003-05-30 !2.4.1 !2003-04-19 !2.4 !2003-04-11 !2.3.2 !2003-03-17 !2.3.1 !2003-03-14 !2.3 !2003-02-27 !2.2 !2002-12-11 !2.1 !2002-09-16 !2.0 !2002-08-09 !1.23 !2002-04-30 !1.22 !2002-04-12 !1.21 !2002-04-03 !1.2 !2002-03-18 !1.1 !2002-03-10 !1.0 !2002-02-25 !====== |====== Source code for all releases is available at link:https://sources.archlinux.org/other/pacman/[]. To install, download the newest available source tarball, unpack it in a directory, and run the three magic commands: $ meson build $ ninja -C build # ninja -C build install You may wish to read the options presented by `meson` in order to set appropriate paths and build options that are correct for your system. Development ----------- Mailing List ~~~~~~~~~~~~ There is a mailing list devoted to pacman development, hosted by Arch Linux. link:https://lists.archlinux.org/listinfo/pacman-dev/[Subscribe] or link:https://lists.archlinux.org/pipermail/pacman-dev/[view the archives]. Source Code ~~~~~~~~~~~ Development of pacman is currently done in Git. The central repository is hosted by Arch Linux, although some of the developers have their own trees (ask on the above mailing lists if you are interested in finding the locations of these trees). The current development tree can be fetched with the following command: git clone git://git.archlinux.org/pacman.git pacman which will fetch the full development history into a directory named pacman. You can browse the source as well using link:https://git.archlinux.org/pacman.git/[cgit]. HTTP/HTTPS URLs are also available for cloning purposes; these URLs are listed at the above page. If you are interested in hacking on pacman, it is highly recommended you join the mailing list mentioned above, as well as take a quick glance at our link:HACKING.html[HACKING] document. link:submitting-patches.html[submitting-patches] is also a recommended read. Not as familiar with code as you'd like to be, but still want to help out? If you speak a foreign language, you can help by either creating or updating a translation file for your native language. Instructions can be found in link:translation-help.html[translation-help]. Other Utilities ~~~~~~~~~~~~~~~ Although the package manager itself is quite simple, many scripts have been developed that help automate building and installing packages. These are used extensively in link:https://archlinux.org/[Arch Linux]. Most of these utilities are available in the Arch Linux projects link:https://git.archlinux.org/[code browser]. Utilities available: * link:https://git.archlinux.org/dbscripts.git/[dbscripts] - scripts used by Arch Linux to manage the main package repositories * link:https://git.archlinux.org/devtools.git/[devtools] - tools to assist in packaging and dependency checking * link:https://git.archlinux.org/namcap.git/[namcap] - a package analysis utility written in python Bugs ---- If you find bugs (which is quite likely), please email them to the pacman-dev mailing last at mailto:pacman-dev@archlinux.org[] with specific information such as your command-line, the nature of the bug, and even the package database if it helps. You can also post a bug to the Arch Linux bug tracker link:https://bugs.archlinux.org/index.php?project=3[Flyspray]. Be sure to file bugs under the Pacman project. Copyright --------- pacman is Copyright (C) 2006-2021 Pacman Development Team and Copyright (C) 2002-2006 Judd Vinet and is licensed through the GNU General Public License, version 2 or later.