pacman-sync
Synchronize package databases with the Arch Linux repositories
TLDR
Install a new package
[S]ynchronize and refresh ([y]) the package database along with a sys[u]pgrade (add --downloadonly to only download the packages and not update them)
Update and [u]pgrade all packages and install a new one without prompting
[s]earch the package database for a regex or keyword
Display [i]nformation about a package
Overwrite conflicting files during a package update
Remove not installed packages and unused repositories from the cache (use the flags Scc to [c]lean all packages)
Specify the package version that should be installed
SYNOPSIS
pacman-sync [options] [packages...]
PARAMETERS
-y, --refresh
Download fresh package databases from the server. This option is typically implied or passed to pacman during full system upgrades.
-u, --sysupgrade
Upgrade all installed packages that are out-of-date. This option is generally implied when pacman-sync performs a system upgrade without specific package arguments.
--noconfirm
Bypass all confirmation prompts. Use with caution, as this can lead to unintended changes.
--needed
Do not reinstall targets that are already up-to-date. Useful when installing multiple packages where some might already be present.
--ignore <package>
Instructs pacman to ignore upgrades for the specified package(s). Can be specified multiple times to ignore several packages.
<package>...
One or more package names to install. If no packages are specified, pacman-sync typically performs a system upgrade.
DESCRIPTION
The command pacman-sync is a common utility or alias, primarily used within Arch Linux and its derivatives, to streamline operations of the pacman package manager. While not a standalone binary distributed by default with pacman, it typically acts as a wrapper or alias for common pacman commands.
Its most frequent use is to perform a full system update by synchronizing package databases and upgrading all installed packages, effectively acting as an alias for pacman -Syu. Alternatively, when invoked with package names, it functions as an installation command, analogous to pacman -S <package>.
The existence of pacman-sync simplifies common maintenance tasks for users, providing a memorable and concise way to keep a system updated or install new software without needing to remember specific pacman flags.
CAVEATS
pacman-sync is generally not a standard, pre-installed binary in Arch Linux. Its behavior is highly dependent on how it's implemented (e.g., as a shell alias or a custom script by the user or a distribution). Users should verify its exact definition on their system to understand the underlying pacman commands it executes.
Relying on pacman-sync without understanding its specific implementation might lead to unexpected behavior compared to directly using pacman commands.
TYPICAL IMPLEMENTATIONS
A common shell alias for pacman-sync might be `alias pacman-sync='sudo pacman -Syu'` for system updates, or a more complex script that distinguishes between system updates and package installations. For example:#!/bin/bash
if [ "$#" -eq 0 ]; then
sudo pacman -Syu "$@"
else
sudo pacman -S "$@"
fi
This script executes pacman -Syu if no arguments are provided, otherwise it executes pacman -S with the provided arguments.
USAGE SIMPLIFICATION
The primary purpose of pacman-sync is to provide a single, memorable command for common pacman operations. It abstracts away the need to remember specific flags like -Syu for system upgrades or just -S for package installations, making package management more intuitive for many users.
HISTORY
The command pacman-sync does not have a formal, official development history as part of the pacman project itself. Instead, it emerged as a popular convention within the Arch Linux community. Users and distribution maintainers often create it as a convenient alias or simple shell script to simplify the very common tasks of updating the system (pacman -Syu) or installing new packages (pacman -S). Its history is therefore more of a community-driven ergonomic evolution rather than a direct software development timeline.
SEE ALSO
pacman(8), pacman-key(8), makepkg(8)