Arch Linux (/ɑːr/)[8][9] is an independently developed x86-64 general-purpose Linux distribution that strives to provide the latest stable versions of most software by following a rolling-release model. The default installation is intentionally minimal so that users can add only the packages they require.[10]

Quick Facts Developer, OS family ...
Arch Linux
Thumb
DeveloperLevente Polyak (lead developer)[1]
OS familyLinux (Unix-like)
Working stateCurrent
Source modelOpen-source
Initial release11 March 2002; 22 years ago (2002-03-11)
Latest release2024.08.01[2] / 36 days ago
Repositorygitlab.archlinux.org www.github.com/archlinux
Marketing targetGeneral purpose
Update methodRolling release
Package managerpacman, libalpm (back-end),[3] Arch build system
Platforms
Kernel typeMonolithic (Linux kernel)
UserlandGNU
InfluencedEndeavourOS, Manjaro, Garuda Linux, Artix Linux, Antergos
Influenced byCRUX, BSD
Default
user interface
Command-line interface (Zsh as the default shell in Live CD or Live USB and Bash as the default shell after installation)
LicenseFree software (GNU GPL and other licenses)[7]
Official websitearchlinux.org Edit this at Wikidata
Close

pacman, a package manager written specifically for Arch Linux, is used to install, remove and update software packages.[11]

Arch Linux uses a rolling release model, meaning it has no major releases. An Arch Linux installation is kept up-to-date by regularly updating the individual pieces of software that it comprises. The only "releases" are up-to-date snapshots of main system components released monthly.[12]

Arch Linux has comprehensive documentation in the form of a community-run wiki known as the ArchWiki.[13][14][15]

History

Inspired by CRUX, another minimalist distribution, Judd Vinet started the Arch Linux project in March 2002. The name was chosen because Vinet liked the word's meaning of "the principal," as in "arch-enemy".[8][16]

Originally only for 32-bit x86 CPUs, the first x86_64 installation ISO was released in April 2006.[17]

Vinet led Arch Linux until 1 October 2007, when he stepped down due to lack of time, transferring control of the project to Aaron Griffin.[18]

The migration to systemd as its init system started in August 2012,[19] and it became the default on new installations in October 2012.[20] It replaced the SysV-style init system, used since the distribution's inception.[21]

The end of i686 support was announced in January 2017, with the February 2017 ISO being the last one including i686[22] and making the architecture unsupported in November 2017.[23] Since then, the community derivative Arch Linux 32[24] can be used for i686 hardware.

On 24 February 2020, Aaron Griffin announced that due to his limited involvement with the project, he would, after a voting period, transfer control of the project to Levente Polyak.[25] This change also led to a new 2-year term period being added to the Project Leader position.[26]

In March 2021, Arch Linux developers were thinking of porting Arch Linux packages to x86_64-v3, roughly correlating to the Intel Haswell era of processors.[27][28]

In April 2021, Arch Linux installation images began including a guided installation script by default.[29]

In late 2021, the Arch Linux developers released Pacman 6.0, which enabled parallel downloads.[30]

In February 2022, the Arch Linux developers began offering debug packages.[31]

Repository security

Until pacman version 4.0.0,[32] Arch Linux's package manager lacked support for signed packages.[33] Packages and metadata were not verified for authenticity by Pacman during the download-install process. Without package authentication checking, tampered-with or malicious repository mirrors could compromise the integrity of a system.[34] Pacman 4 allowed verification of the package database and packages, but it was disabled by default. In November 2011, package signing became mandatory for new package builds, and as of March 2012, every official package is signed.[35] In June 2012, package signing verification became official and is now enabled by default in the installation process.[36][37]

Design and principles

Arch is largely based on binary packages. Packages target x86-64 microprocessors to assist performance on modern hardware. A ports/ebuild-like system is also provided for automated source compilation, known as the Arch build system.[38]

Arch Linux focuses on simplicity of design, meaning that the main focus involves creating an environment that is straightforward and relatively easy for the user to understand directly, rather than providing polished point-and-click style management tools the package manager, for example, does not have an official graphical front-end. This is largely achieved by encouraging the use of succinctly commented, clean configuration files that are arranged for quick access and editing.[39] This has earned it a reputation as a distribution for "advanced users" who are willing to use the command-line interface.[40]

Relying on complex tools to manage and build your system is going to hurt the end-users. [...] "If you try to hide the complexity of the system, you'll end up with a more complex system". Layers of abstraction that serve to hide internals are never a good thing. Instead, the internals should be designed in a way such that they NEED no hiding.

Aaron Griffin[41]

Installation

Thumb
Screenshot of pacstrap during installation

The Arch Linux website supplies ISO images that can be run from CD or USB. After a user partitions and formats their drive, a simple command line script (pacstrap) is used to install the base system.[37] The installation of additional packages which are not part of the base system (for example, desktop environments), can be done with either pacstrap, or Pacman after booting (or chrooting) into the new installation.[42][43][11]

Thumb
Neofetch output of an Arch Linux Installation

An alternative to using CD or USB images for installation is to use the static version of the package manager Pacman, from within another Linux-based operating system.[44] The user can mount their newly formatted drive partition, and use pacstrap (or Pacman with the appropriate command-line switch) to install base and additional packages with the mountpoint of the destination device as the root for its operations. This method is useful when installing Arch Linux onto USB flash drives, or onto a temporarily mounted device which belongs to another system.[45]

Regardless of the selected installation type, further actions need to be taken before the new system is ready for use, most notably by installing a bootloader and configuring the new system with a system name, network connection, language settings, and graphical user interface.[46]

Arch Linux does not schedule releases for specific dates but uses a "rolling release" system where new packages are provided throughout the day. Its package management allows users to easily keep systems updated.[47]

Occasionally, manual interventions are required for certain updates, with instructions posted on the news section of the Arch Linux website.[48]

Guided automated install script

An experimental guided installer named archinstall is included in all Arch ISO images released since 2021. It allows users to easily install and configure Arch Linux including drivers, disk partitioning, network configuration, accounts setup, and installation of desktop environments.[49][50][51]

Thumb
archinstall

Package management

pacman

Thumb
Example of pacman usage

All packages are managed using Pacman, a package manager written specifically for Arch Linux.[52] Pacman handles package installation, upgrades, downgrades, removal and features automatic dependency resolution.[53] The packages for Arch Linux are obtained from the Arch Linux package tree and are compiled for the x86-64 architecture.

Pacman typically uses binary packages with a .tar.zst extension,[54][55][56] (for zstd compression), with .pkg placed before this to indicate that it is a Pacman package (giving .pkg.tar.zst);[53] though other compression formats are also valid, such as .pkg.tar.xz.[57]

For example, packages can be installed via pacman -S package name, and pacman -Syu can be used to perform a full system upgrade.[58]

As well as Arch Linux, Pacman is also used for installing packages under MSYS2 (a fork of Cygwin) on Windows.[59]

Repositories

The following official binary repositories exist:[60]

  • core, which contains all the packages needed to set up a base system. Packages in this repository include kernel packages and shell languages.
  • extra, which holds packages not required for the base system, including desktop environments and programs.
  • multilib, a centralized repository for x86-64 users to more readily support 32-bit applications in a 64-bit environment. Packages in this repository include Steam and Wine.

Additionally, there are testing repositories which include binary package candidates for other repositories. Currently, the following testing repositories exist:

  • core-testing, with packages for core.
  • extra-testing, with packages for extra.
  • multilib-testing, with packages for multilib.

The core-staging and extra-staging repositories are used for some rebuilds to avoid broken packages in testing. The developers recommend not using these repositories for any reason, stating that any system updating from them will "unquestionably break."[61]

There are also two other repositories that include the newest version of certain desktop environments.

  • gnome-unstable, which contains packages of a new version of the software from GNOME before being released into testing.
  • kde-unstable, which contains packages of a new version of KDE software before being released into testing.

The unstable repository was dropped in July 2008 and most of the packages moved to other repositories.[62] The community repository was merged with extra and the testing and staging repositories were split in May 2023.[63][64] In addition to the official repositories, there are a number of unofficial user repositories.

The most well-known unofficial repository is the Arch User Repository, or AUR, hosted on the Arch Linux site. The AUR does not host binary packages but instead a collection of build scripts known as PKGBUILDs. PKGBUILD scripts are executed by the makepkg command, which downloads the necessary files from the software's repository and builds them using the Arch build system.

The Arch Linux repositories contain both libre and nonfree software, and the default Arch Linux kernel contains nonfree proprietary blobs, hence the distribution is not endorsed by the GNU project.[65] The linux-libre kernel can be installed from the AUR or by enabling Parabola's repositories.

Arch build system (ABS)

The Arch build system (ABS) is a ports-like source packaging system that compiles source tarballs into binary packages, which are installed via Pacman.[66] The Arch build system provides a directory tree of shell scripts, called PKGBUILDs, that enable any and all official Arch packages to be customized and compiled. Rebuilding the entire system using modified compiler flags is also supported by the Arch build system. The Arch build system makepkg tool can be used to create custom pkg.tar.zst packages from third-party sources. The resulting packages are also installable and trackable via Pacman.[67][68]

Arch User Repository (AUR)

In addition to the repositories, the Arch User Repository (AUR) provides user-made PKGBUILD scripts for packages not included in the repositories. These PKGBUILD scripts simplify building from source by explicitly listing and checking for dependencies and configuring the install to match the Arch architecture.[69] Arch User Repository helper programs can further streamline the downloading of PKGBUILD scripts and associated building process. However, this comes at the cost of executing PKGBUILDs not validated by a trusted person; as a result, Arch developers have stated that the utilities for automatic finding, downloading and executing of PKGBUILDs will never be included in the official repositories.[70]

Users can create packages compatible with Pacman using the Arch build system and custom PKGBUILD scripts.[71] This functionality has helped support the Arch User Repository, which consists of user contributed packages to supplement the official repositories.[72]

The Arch User Repository provides the community with packages that are not included in the repositories. Reasons include:

  • Licensing issues: software that cannot be redistributed, but is free to use, can be included in the Arch User Repository since all that is hosted by the Arch Linux website is a shell script that downloads the actual software from elsewhere. Examples include proprietary freeware such as Google Earth and RealPlayer.
  • Modified official packages: the Arch User Repository also contains many variations on the official packaging as well as beta versions of software that is contained within the repositories as stable releases.
  • Popularity of the software: rarely used programs have not been added to the official repositories (yet).
  • Betas or "nightly" versions of the software which are very new and thus unstable. Examples include the "firefox-nightly" package, which gives new daily builds of the Firefox web browser.

PKGBUILDs for any software can be contributed by ordinary users.[73] Any PKGBUILD that has 10 or more votes or more than 1% usage from pkgstats can be promoted into the extra repository.[74]

Reproducible builds

Arch Linux is working on making all official packages reproducible.[75] This means that when a package is rebuilt in a different environment it should be bit-by-bit identical. This allows users and researchers to verify the integrity of the packages found in the official repository. The status of this effort can be monitored on the dedicated status page.

Derivatives

There are several projects working on porting the Arch Linux ideas and tools to other kernels, including PacBSD (formerly ArchBSD) and Arch Hurd,[76] which are based on the FreeBSD and GNU Hurd kernels, respectively. There is also the Arch Linux ARM project, which aims to port Arch Linux to ARM-based devices, including the Raspberry Pi, as well as the Arch Linux 32 project, which continued support for systems with 32-bit only CPUs after the mainline Arch Linux project dropped support for the architecture in November 2017.[77][78]

Various distributions are focused on providing an Arch base with an easier install process, such as EndeavourOS, CachyOS and Garuda Linux.[79] Manjaro uses its own repositories.[80]

SteamOS 3.0, the version of SteamOS used in the Steam Deck by Valve, is based on Arch Linux.[81][82][83][84]

The current Arch Linux logo was designed by Thayer Williams[85][86] in 2007 as part of a contest to replace the previous logo.[87]

Reception

OSNews reviewed Arch Linux in 2002.[88] OSNews also has five later reviews about Arch Linux.[89][90][91][92][93]

LWN.net wrote a review about Arch Linux in 2005.[94] LWN.net also has two later reviews about Arch Linux.[95][96]

Tux Machines reviewed Arch Linux in 2007.[97]

Chris Smart from DistroWatch Weekly wrote a review about Arch Linux in January 2009.[98] DistroWatch Weekly reviewed Arch Linux again in September 2009 and in December 2015.[99][100]

The Linux kernel developer and maintainer Greg Kroah-Hartman (GKH)[101] has stated that he uses Arch Linux and that it "works really really well". He has also praised the Arch Wiki, the distribution's rolling release model, and the feedback loop with the community.[102]

In a 2023 DistroWatch poll, about half of the responders maintained that they were running either Arch (17%) or an Arch derivative (30%).[103] As of 2023, Arch also enjoys the highest average rating of any Linux distribution on DistroWatch with a rating of 9.34.[104]

See also

Notes

  1. i686 support is maintained by the Arch Linux 32 project.[4]
  2. ARM support is maintained by the Arch Linux ARM project.
  3. PowerPC support is maintained by the ArchPOWER project.[5]
  4. RISC-V support is maintained by the Arch Linux RISC-V project.[6]

References

Wikiwand in your browser!

Seamless Wikipedia browsing. On steroids.

Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.

Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.