World Library  
Flag as Inappropriate
Email this Article

Arch Build System

Article Id: WHEBN0004185613
Reproduction Date:

Title: Arch Build System  
Author: World Heritage Encyclopedia
Language: English
Subject: ABS, Ports collection
Publisher: World Heritage Encyclopedia

Arch Build System

Arch Linux
developer Aaron Griffin and team[1]
OS family Unix-like
Working state Current
Source model Free and open source software
Initial release March 11, 2002; 12 years ago (2002-03-11)
Latest stable release (Rolling release) / Installation medium 2013.10.01
Marketing target General purpose
Update method Pacman
Package manager Pacman
Supported platforms i686, x86-64
Kernel type Monolithic (Linux)
Userland GNU
Default user interface Bash
License Various[2]
Official website

Arch Linux (or Arch /ˈɑr/)[3] is a Linux-based operating system for i686 and x86-64 computers.[4] It is composed predominantly of free and open source software,[5] and supports community involvement.[6]

The design approach of the development team focuses on elegance, code correctness, minimalism, and simplicity from a developer's standpoint rather than a user's standpoint.[7] A package manager written specifically for Arch Linux, pacman, is used to install, remove and update software packages.

Arch Linux uses a rolling release model, such that a regular system update is all that is needed to obtain the latest Arch software; the installation images released by the Arch team are simply up to date snapshots of the main system components.[8]


Inspired by CRUX, another minimalist distribution, Judd Vinet started Arch Linux in March 2002. Vinet led the project until 1 October 2007, when he stepped down due to lack of time, transferring control of the project to Aaron Griffin.[9]

Design and principles

Arch is largely based around binary packages. Packages are targeted for i686 and 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.

Arch Linux focuses on simplicity and developers meaning that the main effort in assisting the user is not to provide a graphical interface to work with — the package manager, for example, does not have an official graphical front-end — but providing a streamlined set of succinctly commented, clean configuration files that are arranged for quick access and editing.[7] This has earned it a reputation as a distribution for "intermediate and advanced Linux users who aren't afraid of the command line".[10]

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[11]

init framework

Arch Linux uses systemd as the default init system and service manager. Until mid-2012,[12] Arch used a BSD-style init framework, a tradeoff of flexibility for simplicity which included and permitted use of System V runlevels and the inittab file, but made little distinction between runlevels: startup modules and daemons were simply listed in arrays in the central configuration file, /etc/rc.conf, as opposed to System V's scheme of per-runlevel directories containing numbered symbolic links for each daemon.[13] Unlike the original BSD and System V init, this framework was also capable of starting processes asynchronously. In late 2012, Arch moved to systemd as default, and full System V compatibility was ended.[14]


The Arch Linux website supplies ISO images that can be run from CD or USB. They included the Arch Installation Framework (AIF) (until the 2011.08.19 release) providing a dialog based interactive installation script. The default install was minimalist.[15] Further system customization and expansion (adding a window manager, desktop environment, etc.) had to be done manually, installing packages downloaded from online repositories. However, AIF has been removed since the 2012.07.15 release due to lack of maintainers, and instead has been replaced by a simple command line script (pacstrap).[16]

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.[17] The user can mount their newly formatted drive partition, and use Pacman with the appropriate command-line switch to have it use the mountpoint of the device as root for its operations. This way the base package group and any additional packages can be installed on the newly formatted partition by having Pacman retrieve them from its mirrors. However, there are further actions that need to be taken before the system is ready for use after this process, most notably installing a bootloader, and making various configurations to the new system.

Package management


To facilitate regular package changes, pacman was developed by Judd Vinet to provide Arch with its own package manager able to track dependencies.[18]

All packages are managed using the Pacman package manager. Pacman handles package installation, upgrades, removal and downgrades, and features automatic dependency resolution. The packages for Arch Linux are obtained from the Arch Linux package tree and are compiled for either i686 or x86-64 architectures. Arch Linux is primarily based on binary packages in the tar.gz and tar.xz format.[19]


Currently, the following basic official binary repositories exist:[20]

  • core, which contains all the packages needed to set up a base system
  • extra, which holds packages not required for the base system, including desktop environments and programs
  • community, which contains packages built and voted on by the community; includes packages that have sufficient votes and have been adopted by a "trusted user".
  • multilib, a centralized repository for x86_64 users to more readily support 32-bit applications in a 64-bit environment.

In addition, there also exist testing repositories that include binary package candidates for other repositories. Currently, the following testing repositories exist:

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

The staging and community-staging repositories are used for some rebuilds to avoid broken packages in testing.

The unstable repository was dropped in July 2008 and most of the packages moved to other repositories.[21] 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. However, the AUR does not host binary packages, instead hosting a collection of build scripts known as PKGBUILDs.

Repository security

Until pacman version 4.0.0[22] Arch Linux's package manager lacked support for signed packages.[23] 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 can compromise the integrity of a system.[24] 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 21 March 2012 every official package is signed.[25]

In June 2012, package signing verification became official and is now enabled by default in the installation process.[26][27]

Arch Build System

The Arch Build System is a ports-like source packaging system that compiles source tarballs into binary packages, which are installed via Pacman.[28] 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.xz packages from third-party sources. The resulting packages are also installable and trackable via Pacman.[29]

Arch User Repository

In addition to the repositories, the Arch User Repository provides user-made PKGBUILD scripts for packages not included in the repositories. The PKGBUILD scripts simplify building from source by explicitly listing and checking for dependencies and configuring the install to match the Arch architecture. The scripts are available for download from ]

Users can create packages compatible with pacman using the Arch Build System and custom PKGBUILD scripts.[31] This functionality has helped support the Arch User Repository, which consists of user contributed packages to supplement the official repositories.[32]

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

  • License 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 web site 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.
  • Rarity of the software. Some new or rarely used programs have not been added to the official repositories (yet).

PKGBUILDs for any software can be contributed by ordinary users and any PKGBUILD that is not confined to the Arch User Repository for policy reasons can be voted into the community repositories.


Rolling releases

Similar to Gentoo, and unlike other major distributions such as Ubuntu and Fedora, Arch Linux does not schedule releases for specific dates but uses a "rolling release" system, with new packages provided daily. Its package management allows users to keep systems up-to-date easily.[33] Rather than encouraging users to move between discrete releases, Arch Linux releases are simply snapshots of the current set of packages, sometimes with revised installation software. Therefore it makes no difference from which release Arch gets installed if updates are installed afterwards. In fact, some members of the Arch forums take pride in showing the age of the installation.

From version 2009.02 the goal is to bring coordinated releases following the rhythm of kernel releases, in order to provide optimal hardware support, this means a new release every 3 or 4 months.[34]

As of 1 October 2013, the latest image is 2013.10.01 released on 1 October 2013.[35]

The Arch* principle on other kernels

There are some projects porting the Arch Linux ideas and tools to other kernels: Archhurd, based on FreeBSD and the GNU Hurd kernel respectively.

See also

Free software portal


External links

  • DistroWatch
  • Official installation guide
  • Interview with Judd Vinet about Arch Linux, a 2003 interview by DistroWatch
  • The Big Arch Linux Interview, a 2005 interview by OSNews
  • Interview: Arch Linux Team, a 2010 interview by OSNews
  • Allan McRae Arch Linux talk, at SINFO XX, Lisbon 2013
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.

Copyright © World Library Foundation. All rights reserved. eBooks from World Library are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.