Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Arch Linux
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Package management== ===Pacman{{anchor|Pacman}}=== [[File:Example of pacman in Arch Linux screenshot.png|thumb|Example of pacman usage]] All packages are managed through pacman, a [[package manager]] written specifically for Arch Linux.<ref>{{cite web |url=https://www.osnews.com/story/10047 |title=Arch Linux: Why It Rocks |author=Eugenia Loli |publisher=OSNews |date=21 March 2005 |access-date=30 September 2011 |archive-url=https://web.archive.org/web/20110930134246/https://www.osnews.com/story/10047 |archive-date=30 September 2011 |url-status=live }}</ref> Pacman handles package installation, upgrades, downgrades, removal and features automatic dependency resolution.<ref name="Pacman-Arch-Wiki">{{cite web |url=https://wiki.archlinux.org/index.php/Pacman |title=pacman |website=ArchWiki |date=6 August 2017 |access-date=20 August 2017 |archive-url=https://web.archive.org/web/20170818132159/https://wiki.archlinux.org/index.php/Pacman |archive-date=18 August 2017 |url-status=live }}</ref> 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 <code>.tar.zst</code> extension<ref> {{Cite web|url=https://www.phoronix.com/scan.php?page=news_item&px=Arch-Linux-Pacman-Zstd-Near|title=Arch Linux Nears Roll-Out Of Zstd Compressed Packages For Faster Pacman Installs - Phoronix|website=www.phoronix.com|access-date=2019-10-31|archive-date=18 March 2022|archive-url=https://web.archive.org/web/20220318032712/https://www.phoronix.com/scan.php?page=news_item&px=Arch-Linux-Pacman-Zstd-Near|url-status=live}} </ref><ref> {{Cite web|url=https://lists.archlinux.org/pipermail/arch-dev-public/2019-March/029520.html|title=[arch-dev-public] RFC: (devtools) Changing default compression method to zstd|last=Broda|first=Robin|date=March 24, 2019|access-date=2019-10-31|archive-url=https://web.archive.org/web/20191021234422/https://lists.archlinux.org/pipermail/arch-dev-public/2019-March/029520.html|archive-date=21 October 2019|url-status=live}} </ref><ref> {{Cite web|url=https://www.archlinux.org/news/required-update-to-recent-libarchive/|title=Arch Linux - News: Required update to recent libarchive|website=www.archlinux.org|access-date=2019-10-31|archive-url=https://web.archive.org/web/20191021234424/https://www.archlinux.org/news/required-update-to-recent-libarchive/|archive-date=21 October 2019|url-status=live}} </ref> (for [[Zstandard|zstd]] compression), with <code>.pkg</code> placed before this to indicate that it is a Pacman package (giving <code>.pkg.tar.zst</code>);<ref name="Pacman-Arch-Wiki"/> though other compression formats are also valid, such as <code>.pkg.tar.xz</code>.<ref>[https://www.archlinux.org/pacman/makepkg.conf.5.html#_options "Pacman: Configuration options for makepkg"] {{Webarchive|url=https://web.archive.org/web/20210120134132/https://archlinux.org/pacman/makepkg.conf.5.html#_options |date=20 January 2021 }}. 2021.</ref> Packages can be installed via <code>pacman -S {{var|package name}}</code>, and <code>pacman -Syu</code> can be used to perform a full system upgrade.<ref>{{Cite web|url=https://archlinux.org/pacman/pacman.8.html|title=Man pages of Pacman|website=archlinux.org|access-date=2022-07-06|archive-date=22 June 2022|archive-url=https://web.archive.org/web/20220622221154/https://archlinux.org/pacman/pacman.8.html|url-status=live}}</ref> As well as Arch Linux, Pacman is also used for installing packages under [[MSYS2]] (a fork of [[Cygwin]]) on Windows.<ref>{{Cite web|title=Package Management - MSYS2|url=https://www.msys2.org/docs/package-management/|access-date=2020-11-11|website=www.msys2.org|archive-date=1 November 2020|archive-url=https://web.archive.org/web/20201101004322/https://www.msys2.org/docs/package-management/|url-status=live}}</ref> ===Repositories=== The following official binary repositories exist:<ref>{{cite web |url=https://wiki.archlinux.org/index.php/Official_Repositories |title=Official Repositories |website=ArchWiki |access-date=23 November 2012 |archive-url=https://web.archive.org/web/20121118092608/https://wiki.archlinux.org/index.php/Official_Repositories |archive-date=18 November 2012 |url-status=live }}</ref> *''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 (service)|Steam]] and [[Wine (software)|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."<ref>{{Cite web|title=Official repositories - ArchWiki|url=https://wiki.archlinux.org/title/Official_repositories#Staging_repositories|access-date=2022-02-01|website=wiki.archlinux.org|archive-date=11 January 2023|archive-url=https://web.archive.org/web/20230111044308/https://wiki.archlinux.org/title/Official_repositories#Staging_repositories|url-status=live}}</ref> 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.<ref>{{cite web |url=https://www.archlinux.org/static/magazine/2008/newsletter-2008-Aug-04.html |title=Arch Linux Newsletter 08-04-2008 |website=Arch Linux |date=4 August 2008 |access-date=19 October 2009 |archive-url=https://web.archive.org/web/20130603175852/https://www.archlinux.org/static/magazine/2008/newsletter-2008-Aug-04.html |archive-date=3 June 2013}}</ref> The ''community'' repository was merged with ''extra'' in May 2023.<ref>{{Cite web |last=Larabel |first=Michael |date=2023-05-16 |title=Arch Linux Prepares For Repository Changes, Discontinuing SVN Access |url=https://www.phoronix.com/news/Arch-Linux-Discontinues-SVN |access-date=2023-05-24 |website=[[Phoronix]] |archive-date=24 May 2023 |archive-url=https://web.archive.org/web/20230524212743/https://www.phoronix.com/news/Arch-Linux-Discontinues-SVN |url-status=live }}</ref><ref>{{Cite web |last=van der Waa |first=Jelle |date=2023-05-15 |title=Git migration announcement |url=https://archlinux.org/news/git-migration-announcement/ |access-date=2023-05-24 |website=Arch Linux |archive-date=24 May 2023 |archive-url=https://web.archive.org/web/20230524175827/https://archlinux.org/news/git-migration-announcement/ |url-status=live }}</ref> In addition to the official repositories, there are a number of unofficial user repositories. The most well-known unofficial repository is the [[#AUR|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 [[#PKGBUILD|PKGBUILDs]]. PKGBUILD scripts are executed by the <code>makepkg</code> 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 [[Free and open-source software|libre]] and [[Proprietary software|nonfree]] software, and the default Arch Linux kernel contains [[Proprietary device driver|nonfree proprietary blobs]], hence the distribution is not endorsed by the GNU project.<ref>{{cite web |url=https://www.gnu.org/distros/common-distros.html#Arch |title=Explaining Why We Don't Endorse Other Systems |publisher=[[GNU Project]] |access-date=28 September 2011 |archive-url=https://web.archive.org/web/20110424061731/https://www.gnu.org/distros/common-distros.html#Arch |archive-date=24 April 2011 |url-status=live }}</ref> The linux-libre kernel can be installed from the AUR or by enabling [[Parabola GNU/Linux-libre|Parabola's]] repositories. ==={{Anchor|ABS|PKGBUILD}}Arch build system (ABS)=== The Arch build system (ABS) is a [[ports collection|ports]]-like source packaging system that compiles source tarballs into binary packages, which are installed via Pacman.<ref>{{cite web |url=https://wiki.archlinux.org/index.php/Arch_Build_System |title=Arch Build System |website=ArchWiki |access-date=19 October 2009 |archive-url=https://web.archive.org/web/20130117115225/https://wiki.archlinux.org/index.php/Arch_Build_System |archive-date=17 January 2013 |url-status=live }}</ref> The Arch build system provides a directory tree of [[shell script]]s, called ''PKGBUILDs'', that enable any and all official Arch packages to be customized and compiled. Rebuilding the entire system using modified [[CFLAGS|compiler flags]] is also supported by the Arch build system. The Arch build system <code>makepkg</code> tool can be used to create custom <code>pkg.tar.zst</code> packages from third-party sources. The resulting packages are also installable and trackable via Pacman.<ref>{{cite web |url=https://wiki.archlinux.org/index.php/Makepkg |title=Makepkg |website=ArchWiki |access-date=15 February 2013 |archive-url=https://web.archive.org/web/20130126193508/https://wiki.archlinux.org/index.php/Makepkg |archive-date=26 January 2013 |url-status=live }}</ref><ref>{{Cite web|title=Arch Linux - News: Now using Zstandard instead of xz for package compression|url=https://www.archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/|access-date=2020-07-13|website=www.archlinux.org|archive-date=18 March 2022|archive-url=https://web.archive.org/web/20220318032814/https://archlinux.org/news/now-using-zstandard-instead-of-xz-for-package-compression/|url-status=live}}</ref> ==={{Anchor|AUR}}Arch User Repository (AUR)=== In addition to the repositories, the Arch User Repository (AUR) provides user-made PKGBUILD scripts for packages not included within the main repositories. These PKGBUILD scripts simplify building from source by explicitly listing and checking for dependencies and configuring the install to match the Arch architecture.<ref>{{cite web |url=https://aur.archlinux.org/ |title=AUR (en) - Home |website=AUR |access-date=5 February 2014 |archive-url=https://web.archive.org/web/20161103061025/https://aur.archlinux.org/ |archive-date=3 November 2016 |url-status=live }}</ref> 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.<ref>{{cite web |url=https://www.hardware.no/artikler/aaron_griffin_english/49507/3 |title=Arch Linux: Popular KISS distro β Interview β Part II |author=Robin Heggelund Hansen |date=25 March 2008 |publisher=Hardware.no |access-date=19 October 2009 |archive-url=https://web.archive.org/web/20090402152123/https://www.hardware.no/artikler/aaron_griffin_english/49507/3 |archive-date=2 April 2009 |url-status=live }}</ref> Users can create packages compatible with Pacman using the Arch build system and custom PKGBUILD scripts.<ref>{{cite web |url=https://library.linode.com/using-linux/package-management#sph_using-the-arch-build-system-abs |title=Using the Arch Build System |publisher=library.linode.com |date=8 September 2011 |access-date=30 September 2011 |archive-url=https://web.archive.org/web/20110927171153/https://library.linode.com/using-linux/package-management#sph_using-the-arch-build-system-abs |archive-date=27 September 2011 |url-status=live }}</ref> This functionality has helped support the Arch User Repository, which consists of user contributed packages to supplement the official repositories.<ref>{{cite web |url=https://www.linuxdistroreview.com/arch-linux |title=Arch Linux |publisher=linuxdistroreview.com |author=Bo Milanovich |date=8 March 2011 |access-date=30 September 2011 |archive-url=https://web.archive.org/web/20120221120510/https://www.linuxdistroreview.com/arch-linux |archive-date=21 February 2012 }}</ref> The Arch User Repository provides the community with packages that are not included in the main repositories. Reasons for exclusion from the main repositories 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 [[Spotify]]. *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 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.<ref>{{Cite web |title=Arch User Repository - ArchWiki |url=https://wiki.archlinux.org/title/Arch_User_Repository |access-date=2023-07-11 |website=wiki.archlinux.org |quote=In the AUR, users are able to contribute their own package builds[.] |archive-date=14 July 2023 |archive-url=https://web.archive.org/web/20230714060913/https://wiki.archlinux.org/title/Arch_User_Repository |url-status=live }}</ref> Any PKGBUILD that has 10 or more votes or more than 1% usage from [https://pkgstats.archlinux.de/packages pkgstats] can be promoted into the ''extra'' repository.<ref>{{Cite web |title=AUR Trusted User guidelines - ArchWiki |url=https://wiki.archlinux.org/title/AUR_Trusted_User_guidelines#Rules_for_packages_entering_the_extra_repository |access-date=2023-07-11 |website=wiki.archlinux.org |archive-date=11 July 2023 |archive-url=https://web.archive.org/web/20230711123754/https://wiki.archlinux.org/title/AUR_Trusted_User_guidelines#Rules_for_packages_entering_the_extra_repository |url-status=live }}</ref> ===Reproducible builds=== Arch Linux is working on making all official packages [[Reproducible builds|reproducible]].<ref>{{cite web |title=ArchWiki - Reproducible builds |url=https://wiki.archlinux.org/title/Reproducible_builds |access-date=26 April 2023 |archive-date=23 April 2023 |archive-url=https://web.archive.org/web/20230423053930/https://wiki.archlinux.org/title/Reproducible_Builds |url-status=live }}</ref> 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 [https://reproducible.archlinux.org/ status page].
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)