Pacman was developed to be the package manager for Arch Linux, and is also used by KDE-focused Chakra Linux.
Ranked in these QuestionsQuestion Ranking
Pacman is objectively one of the fastest package managers around. This is because it's very minimalistic and it installs only prebuilt packages.
Pro Packaging signing keyring and mirror list
Both are also provided through packages which keeps them up to date.
Pro Xz compression
Uses XZ compression for fast downloads & updates.
Pro Synchronizes package lists with the master server
It allows the system to always be up to date.
Pro A lot of available packages in Arch User Repository
The Arch User Repository (AUR) provides more packages for Pacman than any single repository for any other distribution. No more clumsy manual installations!
Pro Advanced when you want it
Pacman does not overwrite modified configuration files. Instead, it saves a .pacnew file for it which you can later merge at your leasure
Pro Simple syntax
Pacman has a relatively simple syntax which is easy to get used to. For example:
pacman -Syu to update,
pacman -S foo to install etc...
Commands are not long and there are not many different commands to learn by heart.
Pro Manages dependencies reliably
Pro Can be made to use any downloader
Allows to change its downloader from internal to any other like wget or aira2.
Pro Simple package creation and distribution
pacman/PKGBUILD is easy to handle and yet powerful. Creating custom packages and distributing them via AUR is simpler than in other major distributions.
Pro Simple and easy to use with custom repositories
The instructions and configurations for using a custom local or remote repositories are pretty simple and straightforward.
Pro Easy to create custom repositories
Pacman makes it fairly easy and straightforward to create your own repository with signatures.
Pro Pacman hooks add power and flexibility
Hooks are scripts that can run automatically before and after Pacman transactions like installation and removal of packages. For example, Pacman hooks can be used to automatically create system users and files during the installation of packages. Pacman hooks can also be used to delete configuration files and clear caches during the removal of packages.
Pro Many wrappers available which extend functionality
Here are three examples: Powerpill, Yay, and Octopi. Powerpill extends Pacman by enabling asynchronous downloads of packages from multiple mirrors using Aria2 and Reflector. Yay extends Pacman, by enabling automatic download, compilation, and installation of packages from the AUR. Octopi extends Pacman with a GUI frontend written in Qt.
Con Doesn't always clean up after itself
Pacman leaves new configuration versions around and generally doesn't handle file conflicts smoothly.
Con No parallelization
Neither downloads nor processing can be set to run in parallel.
Con Connecting to the AUR is a pain
For example, some AUR packages, used "git://" protocol to fetch code, may get blocked under restricted network such as behind a proxy, then you need to fix its build script by yourself.
Con Syntax - Poorest in Class. pacman -Syu to refresh and then update your software
Con No official way to downgrade packages
This is related to it not supporting partial system upgrades. The very same reason prevents it from downgrading a particular package easily. Doing so can easily result in conflicts and may require a system downgrade or downgrade of multiple packages.
Con No partial upgrades
Pacman just doesn't support partial upgrades. It has to always be system upgrade and never package upgrade.
Con Bad handling of conflicts
Relying on the entire system being updated to the exact same version, making the famed rolling-release model ironically even worse in practice than the traditional version model.
Con AUR packages have to be built from source
Arch Linux argues that, by storing all of their AUR (Arch User Repository) packages as source with a build script, they prevent unsecure packages from being uploaded to the repository. While this has been proven to be useful, it does make installing community packages rather slow.