Template:I18n links start Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n entry Template:I18n links end
The Pacman package manager is one of the great highlights of Arch Linux. It combines a simple binary package format with an easy-to-use build system (see makepkg and ABS). Pacman makes it possible to easily manage packages, whether they be from the official Arch repositories or the user's own builds.
Pacman can keep a system up to date by synchronizing package lists with the master server. This server/client model also allows you to download/install packages with a simple command, complete with all required dependencies (similar to Debian's apt-get).
To really learn what pacman can do, read
man pacman. The below is just a small sample of operations that can be performed.
Installing and Removing Packages
Before installing and upgrading packages, it is a good idea to synchronize the local package database with the remote repositories.
pacman --sync --refresh
To install or upgrade a single package or list of packages (including dependencies), issue the following command:
pacman -S package_name1 package_name2
Sometimes there are more versions of a package in different repositories (e.g. extra and testing). You can specify which one to install:
pacman -S extra/package_name pacman -S testing/package_name
You can also refresh the package database before installing a package in one command:
pacman -Sy package_name
To remove a single package, leaving all of its dependencies installed:
pacman -R package_name
To remove all of the packages dependencies which aren't used by any other installed package:
pacman -Rs package_name
To remove a package without checking dependencies:
pacman -Rd package_name
Upgrading the System
Pacman can update all packages on the system with just one command. This could take quite a while depending on how up-to-date your system is.
However, the best option is to synchronize the repository databases AND update your system in one go with the following:
Querying the Package Database
Pacman can search the package database for a list of packages, you can enter part of the package name to search for all packages matching the string:
pacman -Ss package
To search installed packages only:
pacman -Qs package
Once you know the name of the package you are looking for, you can display some information on the package. Note that query info (-Qi) will show more info than sync info (-Si), as long as the package is installed.
pacman -Si package pacman -Qi package
For a list of files contained in a package:
pacman -Ql package
For a list of files no longer in use by any currently installed packages:
You can also query what package a file on your system belongs to.
pacman -Qo /path/to/file
Pacman is quite an extensive package management tool, here is just a brief collection of other features.
- Download a package without installing it:
pacman -Sw package_name
- Install a local package (not from a repository):
pacman -U /path/to/package/package_name-version.pkg.tar.gz
- Fully clean the package cache (/var/cache/pacman/pkg):
For a more detailed list of switches please refer to
pacman --help or
Pacman configuration is located in
/etc/pacman.conf. In depth information about the configuration file can be found in
General options are in [options] section. Read the man page or look in the default pacman.conf for information on what can be done here.
In this section you define which repositories to use, as referred to in /etc/pacman.conf, and then listed in /etc/pacman.d/. They can be defined directly there or you can include them from another file. The latter is useful for the official repositories which have a lot of mirrors. Avoid using ftp.archlinux.org as it is throttled.
[repository-name] Server = ftp://server.net/repo
[current] # Add your preferred servers here, they will be used first Include = /etc/pacman.d/current
Improve Pacman Performance
Colored Pacman output
Redownloading all installed packages
Server configuration in pacman.conf
ArchLinux User-community Repository (AUR)
Local repository HOW-TO
Custom local repository with ABS and gensync
Howto Upgrade via Home Network (Network Shared Pacman Cache)
Pacman GUI Frontends
Pacman Aliases (for bash)