Arch Build System (Italiano)

From ArchWiki
Revision as of 08:17, 21 March 2008 by Psykopear (Talk | contribs) (Cosa è ABS?)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Cosa è ABS?

ABS è l'acronimo di "Arch Build System", Sistema di costruzione (dei pacchetti) di arch. E' un sistema per fare pacchetti del codice sorgente. Mentre pacman è il tool di Arch specializzato nella gestione dei pacchetti binari (inclusi i pacchetti fatti con ABS), ABS è il tool specializzato nella compilazione dei sorgenti in un pacchetto .pkg.tar.gz installabile

Cos'è un sistema ports-like?

"Ports" è il sistema usato da FreeBSD che permette di scaricare, scompattare, patchare, compilare e installare i pacchetti con i codici sorgenti. "Un 'port' è solo una piccola cartella nel computer dell'utente, chiamata come il corrispondente software che ci verrà installato, che contiene un po' di file con le istruzioni per scaricare ed installare il pacchetto dai sorgenti", solitamente entrando nella cartella, o port, e dando 'make' e 'make install'. Il sistema si occuperà di scaricare, compilare ed installare il software desiderato.

ABS è un concetto simile.

"ABS" è constituito da un'albero di dircetory (the "ABS Tree"), che sta in /var/abs, che contiene molte sottodirectory, ognuna dentro una categoria, e ognuna chiamata con il rispettivo pacchetto installabile contenuto al suo interno. Si può considerare ogni sottodirectory chiamata come un pacchetto un "ABS", più o meno allo stesso modo con cui ci si potrebbe riferire ad un "Port". Questi "ABS", o sottodirectory, "non contengono il pacchetto del software, nè tantomeno il codice sorgente", bensì contengono un file "PKGBUILD" (e a volte altri file). Un PKGBUILD è un semplice script, un file di testo contenente le istruzioni per la compilazione e la pacchettizzazione, ma anche l'url dell'apposito pacchetto di sorgenti da scaricare. "I componenti più importanti di ABS sono proprio i PKGBUILD"

Quick Walkthrough

Running 'abs' as root creates the ABS tree by synchronizing with the cvs system. If you wanted to build nano from source, for instance, you would copy /var/abs/core/base/nano to a build directory, navigate to the build directory and do makepkg. It's as simple as that. Makepkg will attempt to read and execute the instructions contained within the PKGBUILD. The appropriate source tarball will automatically be downloaded, unpacked, compiled according to CFLAGS specified in /etc/makepkg.conf, and finally squeezed into a package with the extension .pkg.tar.gz, as per the instructions in the PKGBUILD. Installing is as easy as doing pacman -U nano.pkg.tar.gz. Package removal is also handled by pacman.

The PKGBUILD and other files may, of course, be customized to suit your needs, and you may choose to use the ABS makepkg function to make your own custom packages from outside sources. (See the prototype PKGBUILD and install files under /var/abs/core/)


With the ABS Tree in place, an Arch user has all available Arch software at their fingertips, to compile from source and automatically package as a .pkg.tar.gz.

ABS Overview

'ABS' may be used as an umbrella term, since it includes and relies on several other components. Therefore, though not technically accurate, 'ABS' can refer to the following structure and tools as a complete toolkit:

  • The ABS tree: The ABS directory structure under /var/abs/. It contains many subdirectories, named for all available Arch cvs software, but not the packages themselves.
  • ABS: A set of tools to retrieve and build official Arch Linux PKGBUILDs. Example PKGBUILDs are also included.
  • PKGBUILDs: Text files residing under the ABS directories, with instructions for building packages and the URL of the sources.
  • makepkg: ABS shell command tool which reads the PKGBUILDs, compiles the sources and creates a .pkg.tar.gz.
  • Pacman: Pacman is completely separate, but is necessarily invoked either by makepkg or manually, to install and remove the built packages, and for fetching dependencies.
  • AUR: The Arch User-Community Repository is separate from ABS but AUR [unsupported] PKGBUILDs can be used via the ABS makepkg tool, to compile and package up software. The AUR contains user-contributed PKGBUILDs for software which may be unavailable as an official Arch package.