Difference between revisions of "Arch Build System (Dansk)"

From ArchWiki
Jump to: navigation, search
(rm temporary i18n template)
(25 intermediate revisions by 6 users not shown)
Line 1: Line 1:
[[C ategory:Dansk]]
+
[[Category:Dansk]]
[[Ca tegory:Package management (Dansk)]]
+
[[Category:Package management (Dansk)]]
 +
[[cs:Arch Build System]]
 +
[[de:Arch Build System]]
 +
[[el:Arch Build System]]
 +
[[en:Arch Build System]]
 +
[[es:Arch Build System]]
 +
[[fr:ABS]]
 +
[[it:Arch Build System]]
 +
[[ja:Arch Build System]]
 +
[[ko:Arch Build System]]
 +
[[pl:Arch Build System]]
 +
[[ro:ABS]]
 +
[[ru:Arch Build System]]
 +
[[tr:Arch_derleme_sistemi]]
 +
[[zh-CN:Arch Build System]]
 +
[[zh-TW:Arch Build System]]
 
{{Article summary start}}
 
{{Article summary start}}
 
{{Article summary text|Forklarer om byggesystemet i Arch Linux}}
 
{{Article summary text|Forklarer om byggesystemet i Arch Linux}}
{{Article summary heading|Tilgængelig på følgende sprog}}
 
{{i18n_entry|Česky|ABS - The Arch Build System (Česky)}}
 
{{i18n_entry|English|ABS - The Arch Build System}}
 
{{i18n_entry|繁體中文|ABS - The Arch Build System (繁體中文)}}
 
{{i18n_entry|Polski|ABS - The Arch Build System (Polski)}}
 
{{i18n_entry|Русский|ABS - The Arch Build System (Russian)}}
 
 
{{Article summary heading|Relaterede artikler (Engelsk)}}
 
{{Article summary heading|Relaterede artikler (Engelsk)}}
 
{{Article summary wiki|AUR_Trusted_User_Guidelines|}}
 
{{Article summary wiki|AUR_Trusted_User_Guidelines|}}
Line 17: Line 26:
 
{{Article summary wiki|Main_Page_(Dansk)}}
 
{{Article summary wiki|Main_Page_(Dansk)}}
 
{{Article summary end}}
 
{{Article summary end}}
 
'''''THE ARTICLE IS BEING TRANSLATET''''' by [[User:Jan-portugal|jan-portugal]]
 
  
 
==== Hvad er ABS? ====
 
==== Hvad er ABS? ====
ABS er en forkortelse af Arch Build System - eller på dansk Archs byggesystem. Det er et 'ports'-lignende system til at bygge software fra '''kilden'''.  
+
ABS er en forkortelse af Arch Build System - eller på dansk Archs byggesystem. Det er et 'ports'-lignende system til at bygge software fra '''kilden'''.<br>Hvor Pacman er det specialiserede værktøj i Arch Linux til at håndtere binære pakker (inklusiv pakker, der er bygget med ABS ), er ABS det specialiserede værktøj til at kompilere fra en kilde til en installérbar pkg.tar.gz-pakke.
 
=====Hvad er et 'ports'-lignende system?=====
 
=====Hvad er et 'ports'-lignende system?=====
'Ports' er et system, anvendt af FreeBSD, der lader '''kilde'''-pakker blive downloadet, udpakket, tilrettet, kompileret og installeret. ''En 'port' er blot en lille mappe på brugerens computer med et navn, der svarer til det software der installeres. Denne mappe indeholder nogle få filer med instruktioner for download og installation af en pakke fra en kilde'', typisk ved at navigere til mappen - eller porten - og udføre kommandoerne ''make'' og ''make install''. Systemet vil så downloade, kompilere og installere det ønskede software. En typisk bruger af BSD-porte vil downloade hele port-hierarkiet, der blot er et mappetræ med mange undermapper - eller porte, der hver svarer til det respektive i9nstallerbare software.
+
'Ports' er et system, anvendt af FreeBSD, der lader '''kilde'''-pakker blive downloadet, udpakket, tilrettet, kompileret og installeret. ''En 'port' er blot en lille mappe på brugerens computer med et navn, der svarer til det software der installeres. Denne mappe indeholder nogle få filer med instruktioner for download og installation af en pakke fra en kilde'', typisk ved at navigere til mappen - eller porten - og udføre kommandoerne ''make'' og ''make install''. Systemet vil så downloade, kompilere og installere det ønskede software.
  
 
====='''ABS''' er et lignende koncept.=====
 
====='''ABS''' er et lignende koncept.=====
Line 29: Line 36:
 
=====Hurtig gennemgang=====
 
=====Hurtig gennemgang=====
 
Kør kommandoen ''abs'' som 'root' for at oprette ABS-træet. Hvis du f.eks. vil bygge editoren Nano fra '''kilden''', skal du kopiere filen /var/abs/core/base/nano til en byggemappe. Gå ind i byggemappen og kør en '''makepkg'''. Så enkelt er det.<br>
 
Kør kommandoen ''abs'' som 'root' for at oprette ABS-træet. Hvis du f.eks. vil bygge editoren Nano fra '''kilden''', skal du kopiere filen /var/abs/core/base/nano til en byggemappe. Gå ind i byggemappen og kør en '''makepkg'''. Så enkelt er det.<br>
'Makepkg' vil forsøge at læse og eksekvere de instruktioner, der findes i PKGBUILD-filen. Tar-arkivet fra kilden downloades, udpakkes, kompileres og klemmes ind i en pakke med fil-endelsen .pkg.tar.gz, som det instrueres i filen PKGBUILD.<br>
+
'Makepkg' vil forsøge at læse og eksekvere de instruktioner, der findes i PKGBUILD-filen. Tar-arkivet fra kilden downloades, udpakkes og kompileres i henhold til de 'CFLAGS', der angives i /etc/makepkg.conf og til sidst klemmes ind i en pakke med fil-endelsen .pkg.tar.gz, som det instrueres i filen PKGBUILD.<br>
 
Installation er så nemt, som at køre en ''pacman -U nano.pkg.tar.gz'', eller lav pakken og installér den rent med Pacman. Alt med kun én kommando.<br>
 
Installation er så nemt, som at køre en ''pacman -U nano.pkg.tar.gz'', eller lav pakken og installér den rent med Pacman. Alt med kun én kommando.<br>
 
Fjernelse af pakken håndteres også af Pacman.
 
Fjernelse af pakken håndteres også af 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 sources outside the ABS tree itself. (See the prototype PKGBUILD and install files under /var/abs/core/)
+
Filen PKGBUILD og andre filerkan selvfølgelig tilpasses som du ønsker, og du kan vælge at benytte 'makepkg'-funktionen i ABS til at lave egne brugertilpassede pakker fra kilder udenfor selve ABS-træet.(Se en prototype på en PKGBUILD og installationsfile under /var/abs/core/)
 
-----
 
-----
With the '''ABS Tree''' in place, an Arch user has all available Arch packages at their fingertips, to compile from source. '''ABS''' tools may also be used for building custom packages from source for your system, and/or shared with the community in conjunction with the [[AUR]].
+
Med '''ABS-træet''' på plads har en Arch Linux-bruger, der vil kompilere fra kilde, alle tilgængelige pakker ved hånden.
  
As always, man makepkg for more specific information.
+
=====Er det det hele?=====
 +
Ikke helt endnu!<br>
 +
*Du kan også benytte ABS-værktøjet '''[[makepkg]]''' til - sammen med dine egne tilpassede PKGBUILDs - til at oprette pakker til dig selv, eller til at dele med fællesskabet. Igen er resultatet - ''foo''.pkg.tar.gz-pakkerne - rent installeres med Pacman.
 +
* ABS-værktøjerne lader dig benytte Arch Linux-brugernes software-kilde [[AUR_Brugervejledning|AUR]] ('''A'''rch '''U'''ser '''R'''epository), der er fyldt med allerede færdige PKGBUILDs til din bekvemmelighed.
  
=====TODO: brief makeworld explanation=====
+
=====ABS - Systemoversigt=====
makeworld has no man page, so do makeworld --help.
+
'ABS' kan benyttes som en 'paraply'-terminologi, da det inkluderer - og er afhængig af - flere andre komponenter. Derfor henviser 'ABS' til følgende strukur og værktøjer - selv om det ikke er helt teknisk korrekt - som et komplet værktøjssæt:
  
==== Why would I want to use ABS? ====
+
* '''ABS-træet:''' Mappestrukturen i ABS under /var/abs/. Det indeholder mange undermapper, navngivet af alle tilgængelige Arch linux software-pakker - men ikke selve pakkerne.
The Arch Build System (ABS for short) is used to
+
* '''ABS:''' De faktiske mapper navngivet til det byggebare software og indeholdende PKGBUILD.
 +
* '''PKGBUILDs:''' Tekstfiler der ligger under ABS-mapperne med instruktioner til bygning af pakker og kildernes URL.
 +
* '''[[AUR]]:''' 'Arch Linux-brugernes software-kilde der indeholder PKGBUILDs fra brugerne til software, der måske ikke er tilgængelige som officielle Arch Linux-pakker.
 +
* '''makepkg:''' Skal-kommando der læser PKGBUILDs, kompilerer kilderne og opretter .pkg.tar.gz-arkiver.
 +
* '''Pacman:''' Pacman er helt udenfor, men bliver nødvendigvis kaldt af scriptet 'makepkg' eller manuelt, til installation eller fjernelse af de byggede pakker eller til at hente afhængigheder.
 +
====Hvorfor skulle jeg bruge ABS?====
 +
'''A'''rch '''B'''ygge'''S'''ystem (ABS) anvendes til:
 +
* At lave nye pakker fra kilde af software, der endnu ikke er tilgængelig. (Se [[Creating Packages|hvordan du laver pakker til Arch Linux]])
 +
* Bygge og dele disse pakker via [[AUR_Brugervejledning|AUR]]
 +
* Tilpas eksisterende pakker, så de passer til dit behov (aktivere eller deaktivere valgmuligheder)
 +
* Genopbyg hele dit system med dine kompileringsflag (a la FreeBSD)
 +
* Bygge og installere din egen tilpassede kerne. (Se [[Kernel Compilation]])
 +
* Få kernemoduler til at virke med din brugertilpassede kerne.
  
* Make new packages from source, of software for which no packages are yet available (See [[The Arch package making HOW-TO - with guidelines]])
+
ABS er ikke nødvendig for at bruge Arch Linux - men det er nyttigt til forskellige kompileringsopgaver.
* Customize existing packages to fit your needs (enabling or disabling options)
+
* Rebuild your entire system using your compiler flags, "a la FreeBSD"
+
* Get kernel modules working with your custom kernel.
+
  
ABS is not necessary to use Arch Linux, but it is useful.
+
Denne vejledning forsøger at give dig et overblik over ABS og Arch Linux-pakker. Det er ikke en komplet reference-guide!<br>Hvis du vil vide mere, skulle du prøve at kigge på ''man''-siderne.
  
This how-to tries to give you an overview of ABS and Arch packages; it's not a complete reference guide! If you want more, you should try to read the man pages.
+
====Kom igang! Installér pakker====
  
==== Install Packages ====
+
For at benytte ABS skal du først installere '''csup''' og '''wget'''. Dette gøres med
 +
pacman -S csup wget
  
To use abs, you first need to install '''cvsup''' and '''wget'''; this can be done simply by:
+
====/etc/abs.conf====
 +
Redigér /etc/abs.conf til at inkludere dine software-kilder:
 +
nano /etc/abs.conf
 +
Fjern udråbstegnet '!' foran de passende software-kilder som f.eks.:
 +
REPOS=(core extra community !testing)
  
<pre>
+
====Opret ABS-træet====
pacman -Sy cvsup wget</pre>
+
Som 'root' køres:
 
+
As an alternative to '''cvsup''', you can also use '''csup''', a faster version of cvsup written in C:
+
 
+
<pre>
+
pacman -Sy csup</pre>
+
 
+
==== /etc/abs/abs.conf ====
+
edit /etc/abs/abs.conf to include your desired repositories:
+
nano /etc/abs/abs.conf
+
Remove the ! in front of the appropriate repos, e.g.:
+
SUPFILES=(core extra !unstable community !testing)
+
==== Create the ABS tree ====
+
As root, do:
+
 
  abs
 
  abs
Your ABS tree is now created under /var/abs. Note the appropriate branches of the ABS tree now exist and correspond to the ones you specified in /etc/abs/abs.conf.  
+
Dit ABS-træ er nu oprettet under /var/abs. Bemærk de passende grene på ABS-træet nu eksisterer og svarer til dem du specificerede i /etc/abs/abs.conf.  
  
''The abs command should also be used to periodically sync and update your ABS Tree.''
+
''Kommandoen '''abs''' bør også benyttes til regelmæssigt at synkronisere og opdatere dit ABS-træ.''
  
==== The ABS tree ====
+
====/etc/makepkg.conf====
 +
Redigér filen /etc/makepkg.conf for at angive miljøvariabler og 'CFLAGS':
 +
nano /etc/makepkg.conf
 +
====ABS-træet====
  
When you run abs for the first time, it synchronizes the ABS tree with the Arch server using the cvs system. So what exactly is the ABS tree? It is located under /var/abs and looks like this:
+
Når du kører '''abs''' for første gang, synkroniseres ABS-træet med Ardh-serveren ved hjælp af 'cvs'-systemet. Hvad er så ABS-træet helt specifikt? Det findes under /var/abs, og ser såledesud:
  
 
<pre>
 
<pre>
Line 106: Line 120:
 
</pre>
 
</pre>
  
So the ABS tree has exactly the same structure as the package database:
+
ABS-træet har altså nøjagtigt den samme struktur som pakkedatabasen:
* first-level directory represents categories
+
* Første mappebane repræsenterer kategorier.
* second-level directories represents the ABS themselves, whose names actually correspond to the packages you want to build
+
* Anden mappebane repræsenterer selve ABS-erne, hvis navne svarer til de pakker du vil bygge.
* PKGBUILD files contain all information needed concerning the package
+
* PKGBUILD-filerne indeholder alt nødvendig information omkring pakken.
* Further, an ABS directory can contain patches and/or other files needed for building the package.  
+
* Endvidere kan en ABS-mappe indeholde rettelser og/eller andre filer, der er nødvendige for at bygge pakken.
''It is important to understand that the actual source code for the package is not present in the ABS directory.'' Instead, the '''PKGBUILD''' file contains a URL from which ABS will automatically download from.
+
''Det er vigtigt at forstå, at selve pakkens kildekode ikke findes i ABS-mappen.'' I stedet for indeholder '''PKGBUILD'''-filen en URL fra hvilken ABS automatisk vil downloade.
=====/var/abs/local/=====
+
Within the ABS Tree, there is one special directory: '''local'''. This directory is ''yours''. This is where you'll do everything; you should never modify the rest of the tree. Copy the ABS from the tree (var/abs/branch/category/pkgname) to the build directory, (/var/abs/local/).
+
  
Create your /var/abs/local/ build directory:
+
=====Opret en mappe til bygning af pakker=====
mkdir /var/abs/local
+
Du skal oprette en mappe til bygning af pakker, hvor den faktiske kompilering finder sted. I denne mappe kan du gøre alt, og du bør aldrig ændre ABS-træet ved at bygge inde i det. Det er god praksis at benytte din egen hjemmemappe, selv om mange Arch Linux-brugere foretrækker at oprette en ''local''-mappe  under /var/abs/ ejet af normal bruger. Kopiér en ABS fra træet (var/abs/branch/category/''pakkenavn'') til byggemappen ''/søgesti/til/byggemappe/''.
  
NOTE: The first download of the abs tree is the biggest, then only minor updates are needed, so don't be afraid about the data to download if you've got only a 56k connection; it's only text files and is compressed during the transfer''.
+
Opret din byggemappe:
 +
mkdir /home/dit-brugernavn/abs/local
  
Now that you know what the ABS tree is, how can we use it ?
+
BEMÆRK: Den første download af ABS-træet er den største. Derefter er det kun nødvendigt med mindre opdateringer, så vær ikke bange, hvis du kun har en 56k-tilslutning. Der er kun tale om tekstfiler, som er komprimerede under overførslen.
  
==== The build function, traditional method ====
+
Nu hvor vi ved, hvad et ABS-træ er - hvordan kan vi så bruge det?
  
If you're not familiar with compiling from source, you should know that most packages (but not all) can be built from source in this '''traditional way''':
+
====Byggefunktionen - traditionel metode====
* Download source tarball from remote server, using web browser, ftp, wget or alternate method.
+
* uncompress the source file:
+
  
  <pre>
+
Hvis du ikke kender til at kompilere fra kilde, skal du vide, at de fleste pakker (dog ikke alle) kan bygges fra kilde på denne '''traditionelle måde''':
 +
* Download kildens tar-arkiv fra en ekstern server med en web-browser, ftp, wget eller andre metoder.
 +
* Pak kildefilen ud som eks.:
 
   tar -xzf foo-0.99.tar.gz
 
   tar -xzf foo-0.99.tar.gz
   tar -xjf foo-0.99.tar.bz2</pre>
+
   tar -xjf foo-0.99.tar.bz2
 
+
* enter the directory
+
  
 +
* Gå ind i mappen:
 
   <pre>cd foo-0.99</pre>
 
   <pre>cd foo-0.99</pre>
  
* configure the package: generally, there is a little script called <code>configure</code> in the source directory that is used to configure the package (add or remove support for things, choose the install destination, etc.) and check that your computer has all the software needed by the package. It can be run by:
+
* konfigurér pakken. Generelt er der et lille script ved navn <code>configure</code> i kildemappen, der benyttes til at konfigurere pakken (tilføje eller fjerne understøttelse for noget, vælge destination for installation osv.). Scriptet tjekker også, om din computer har det nødvendige software for pakken. Det kan køres med:
  
  <pre>./configure [[option]]</pre>
+
./configure <valgmulighed>
  
You should first try the help to better understand how it works:
+
Du skulle først prøve valgmuligheden 'help', for bedre at forstå, hvordan det virker:
 +
./configure --help
  
  <pre>./configure --help</pre>
+
Hvis ikke valgmuligheden --prefix sættes i scriptet, vil de '''fleste''' scripts benytte /usr/local som sti til installationen, mens andre benytter /usr. For en bedre konsistens tilrådes generelt at sætte valgmuligheden --prefix=/usr/local. Det er god praksis at installere personlige programmer i /usr/local, og at have dem, der vedligeholdes af distributionen, anbragt i /usr. Dette tilsikrer, at personlige programmer kan sameksistere med dem, der håndteres af ditributionens pakkehåndtering - i Arch Linux' tilfælde er det '''Pacman'''.
If a --prefix option is not passed to the script, ''most'' scripts will use /usr/local as the install path, but others will use /usr. For the sake of consistency, it is generally advised to pass the --prefix=/usr/local option. It is good practice to install personal programs in /usr/local, and to have the ones being managed by the distro, in /usr. This ensures personal program versions can coexist with those being managed by the distro's package manager- in Arch's case, ''pacman''.
+
 
  ./configure --prefix=/usr/local
 
  ./configure --prefix=/usr/local
* compile the sources:
+
* Kompiler kilderne:
 +
make
 +
* Installér
 +
make install
 +
* Afinstallering udføres ved at gå ind i kildemappen og køre:
 +
make uninstall
  
  <pre>make</pre>
+
Dog burde du altid læse filen <code>INSTALL</code>, for at se, hvordan pakken skal bygges og installeres! '''Ikke alle pakker anvender systemet <code>configure; make; make install</code>!
  
* install
+
''Den her beskrevne måde at kompilere kilde-tar-arkiver kan selvfølgelig stadig benyttes i Arch Linux, men ABS tilbyder et strømlinet, enkelt og elegant alternativ, som du vil se.''
  
  <pre>make install</pre>
+
====Byggefunktionen - ABS-måden====
* Uninstalling would be accomplished by entering the source directory and running:
+
make uninstall
+
  
However, you should always read the <code>INSTALL</code> file to know how the package should be built and installed! '''Not all packages use the <code>configure; make; make install</code> system!
+
ABS er et elegant værktøj, der yder en stærk assistance og tilpasningsmuligheder til byggeprocessen, samt opretter en pakkefil til installation. ABS-metoden involverer kopiering af en ABS fra træet til en byggemappe og køre en 'makepkg'. I vores eksempel vil vi bygge pakken ''slim'' display-håndtering.
  
==== The build function, the ABS way ====
+
*1. Kopiér ''slim'' ABS fra træet til en byggemappe:
 
+
  cp -r /var/abs/extra/x11/slim /home/dit-brugernavn/abs/local
ABS is an elegant tool which allows for powerful assistance and customization for the build process, and creates a package file for installation. The ABS method involves copying an ABS from the Tree to a build directory, and doing makepkg. In our example, we will build the ''slim'' display manager package.
+
*2. Navigér til byggemappen:
 
+
  cd /home/dit-brugernavn/abs/local/slim
*1. Copy the slim ABS from the Tree to a build directory.
+
*3. Kør kommandoen ''makepkg'', der automatisk downloader tar-arkivet fra kilden, pakker ud, kompilerer og opretter filen slim.pkg.tar.gz Valgmuligheden -i kalder Pacman til automatisk at installere den resulterende pakkefil slim.pkg.tar.gz:
  cp -r /var/abs/extra/x11/slim /var/abs/local
+
*2. Navigate to the build directory
+
  cd /var/abs/local/slim
+
*3. Do makepkg, which will automatically download the source tarball, unpack, compile, and create foo.pkg.tar.gz The -i option invokes pacman to automatically install the resulting slim.pkg.tar.gz package file
+
 
  makepkg -i
 
  makepkg -i
That's it. You have just built slim from source and cleanly installed it to your system with pacman. Package removal is also handled by pacman- (pacman -R slim)
+
Det var det! Du har lige bygget ''slim'' fra kilde og installeret det rent på dit system med Pacman. At fjerne pakken håndteres også af Pacman: 
 +
pacman -R slim
  
Alternatively, you may do makepkg without the -i option, and manually install with pacman by doing:
+
Alternativt kan du køre 'makepkg' uden valgmuligheden '-i' og installere pakken manuelt med Pacman:
  pacman -U foo.pkg.tar.gz
+
pacman -U slim.pkg.tar.gz
+
==== Useful Options ====
+
  
Some useful makepkg options, from the makepkg man page:
+
* ''ABS-metoden tilføjer noget bekvemmelighed og automatisering, mens det stadig er fuldstændigt gennemskueligt og fastholder fuld kontrol over bygge- og installations-funktioner, ved at inkludere dem i PKGBUILDs.''
+
-c, --clean
+
              Clean up leftover work files and directories after a successful build.
+
 
+
-f, --force
+
              makepkg  will  not build a package if a built package already exists in the PKGDEST (set in makepkg.conf) directory,
+
              which may default to the current directory. This allows the built package to be overwritten.
+
 
+
-i, --install
+
              Install or upgrade the package after a successful build using pacman.
+
 
+
-s, --syncdeps
+
              Install  missing dependencies using pacman. When missing build-time or run-time dependencies are found, pacman will
+
              try to resolve them. If successful, the missing packages will be downloaded and installed.
+
Therefore, makepkg -csi will grab all dependencies (if any), install (with pacman), and clean up all leftover work files from the build directory.
+
 
+
Again, consult man makepkg for more.
+
 
+
==== TODO: Explain makeworld function for rebuilding whole system, etc. ====
+
 
+
==== What is a package file? ====
+
 
+
Remember, ABS automatically downloads the source code for the particular software you are compiling. It then unpacks, compiles the sources and squeezes everything into an installable package.
+
Typically, the resulting package file is a file called ''foo''.pkg.tar.gz.
+
 
+
In fact, it is no more than a gzipped tar archive or 'tarball' which contains:
+
 
+
* The files to install
+
 
+
*.PKGINFO: contains all the metadata needed by pacman to deal with packages, dependencies, etc.
+
 
+
*.FILELIST: lists all the files of the archive. It's used in order to uninstall the software or to check for file conflicts.
+
 
+
*.INSTALL: a file used to execute commands after the install/upgrade/remove stage. (This file is present only if specified in the PKGBUILD.)
+
 
+
Since pacman manages tar.gz packages, foo.pkg.tar.gz can now easily be installed/removed.
+
 
+
==== What is a PKGBUILD and what does it contain? ====
+
 
+
As explained before, the PKGBUILD file contains metadata about a package. It is a plain text file. Here is an example:
+
 
+
<pre>
+
# $Id: PKGBUILD,v 1.12 2003/11/06 08:26:13 dorphell Exp $
+
# Maintainer: judd <jvinet@zeroflux.org>
+
# Contributor: Judd Vinet <jvinet@zeroflux.org>
+
pkgname=foo
+
pkgver=0.99 # note: if the pkgver had been '0.99-10' then use an underscore, i.e. '0.99_10'
+
pkgrel=1
+
pkgdesc="short description of foo"
+
arch=(i686 x86_64)
+
url="http://www.foo.org"
+
license=('GPL')
+
groups=
+
provides=
+
depends=('qt' 'python')
+
makedepends=('guile')
+
conflicts=('yafoo')
+
replaces=('mffoo')
+
backup=('etc/foo/foo.conf')
+
install=('foo.install')
+
source=(http://www.foo.org/download/$pkgname-$pkgver.tar.gz)
+
md5sums=('2c0cca3ef6330a187c6ef4fe41ecaa4d35175bee593a7cc7d6205584a94d8625')
+
 
+
build() {
+
  cd $startdir/src/$pkgname-$pkgver
+
  ./configure --prefix=/usr
+
  make || return 1
+
  make prefix=$startdir/pkg/usr install
+
}
+
</pre>
+
 
+
So let's explain each field:
+
 
+
* '''# text''' : comments
+
* '''# $Id: PKGBUILD,v ...''': the cvs-tag for this pkg (from the archlinux-cvs system created)
+
* '''# Maintainer''': the maintainer responsible for this pkg in the official repositories
+
* '''# Contributor''': the person who wrote the first PKGBUILD for this package
+
* '''pkgname''': the name of the package
+
* '''pkgver''': the version of the package
+
* '''pkgrel''': the release number of the Arch package. It is different from the version of the package and is changed when the PKGBUILD is modified. This can happen for many reasons, for example if you enable compile-time support for something.
+
* '''pkgdesc''': a brief description of the package. This is what you see when you browse the [http://archlinux.org/packages/ package database]
+
* '''arch''': shows on what architectures it is known to build and work - see [[Arch64_FAQ]] for porting details
+
* '''url''': the homepage of the software (which appears when you click on a package on the package database)
+
* '''license''': the license under which the software is distributed
+
* '''groups''': this is used to group packages; when you try to install kde, for example, it installs all packages that belong to the kde group
+
* '''provides''': this is used if the package provides another package, for example, kernel-scsi provides kernel
+
* '''depends''': this lists the run-time dependencies of the package (what it needs to work)
+
* '''makedepends''': dependencies needed to build the package but which are not needed once the package is built
+
* '''conflicts''': these packages cannot be installed at the same time. Here, <i>foo</i> conflicts with <i>yafoo (yet another foo)</i>. They cannot be installed at the same time.
+
* '''replaces''': the new package replaces the old one.  Here, <i>mffoo (my first foo)</i> is no longer supported and is being replaced with <i>foo</i>
+
* '''backup''': which files to back up (as file.pacsave) when the package is removed
+
* '''install''': specifies a special install script that is to be included in the package (it has to be in the same directory as PKGBUILD)
+
* '''source''': this specifies from where to download the package's source code. It can be a local package as well as a "http" of "ftp" one. It is named using <i>pkgver</i> in order to avoid changing the source each time the version changes.
+
* '''md5sums''': md5sums of the source to check their integrity
+
 
+
So now, let's explain the function:
+
 
+
* build: all the actions needed to build the package (it will be explained in more detail later in this document)
+
 
+
Well, you see that the PKGBUILD file contains all the information that might be needed by the package manager. It is the heart of pacman and abs.
+
 
+
There are also install files. This PKGBUILD specifies 'foo.install' as the package's install file. Here is an example install file:
+
 
+
<pre>
+
post_install() {
+
/bin/true
+
}
+
 
+
post_upgrade() {
+
/bin/true
+
}
+
 
+
pre_remove() {
+
/bin/true
+
}
+
 
+
op=$1
+
shift
+
 
+
$op "$@"
+
</pre>
+
 
+
Here are the function explanations:
+
 
+
* post_install: this script is run right after files are installed; it takes one argument:
+
** the package version
+
* post_upgrade: this script is run after all files have been upgraded; <em>it takes two arguments</em>:
+
** the new package version
+
** the old package version
+
* pre_remove: this script is run right before files are removed (stop a daemon, for example) and takes one argument:
+
** the package version
+
 
+
The three lines at the bottom are needed in every install file so that they run properly.
+
 
+
 
+
 
+
 
+
 
+
==== Build function explained ====
+
So let's take a look at an ABS build function as dictated by the PKGBUILD example from above. Note the build section:
+
 
+
<pre>
+
build() {
+
  cd $startdir/src/$pkgname-$pkgver
+
  ./configure --prefix=/usr
+
  make || return 1
+
  make prefix=$startdir/pkg/usr install
+
}
+
</pre>
+
 
+
What is happening:
+
* enter the directory where sources were uncompressed:
+
 
+
  <pre>cd $startdir/src/$pkgname-$pkgver</pre>
+
 
+
* configure the package, and tell it to install in the <code>/usr</code> directory:
+
 
+
  <pre>
+
  ./configure --prefix=/usr</pre>
+
 
+
* compile
+
 
+
  <pre>
+
  make || return 1</pre>
+
 
+
* install the software not in <code>/usr</code>, but instead in <code>$startdir/pkg/usr</code> so that pacman has control of the files.
+
 
+
  <pre>
+
  make prefix=$startdir/pkg/usr install</pre>
+
 
+
What we want to do is to build the package, not to install it. So instead of installing to the standard place (<code>/usr</code>), we tell <code>make</code> to put all files in our special directory: <code>$startdir/pkg/usr</code>. Thus, makepkg can look and see which files the package installs, and then compress them into the Arch package.
+
 
+
'''NOTE''': It is sometimes the case where <code>prefix</code> is not used in the <code>Makefile</code>; often <code>DESTDIR</code> is used instead. If the package is built with autoconf/automake, use <code>DESTDIR</code>; this is what is [http://sources.redhat.com/automake/automake.html#Install documented] in the manuals. Check if the generated <code>filelist</code> is a lot shorter than it should be, and if so, try building with <code>make DESTDIR=$startdir/pkg install</code>. If that does not work, you'll have to look further into the install commands that are executed by "<code>make <...> install=</code>".
+
 
+
==== First use of ABS: customizing a package ====
+
 
+
This situation can arise more often than you might think: official packages are compiled having chosen a certain number of <code>--enable</code> or <code>--disable</code> options, and these are not necessarily the ones you would have chosen.
+
 
+
To illustrate it, I'll take an example: ''foo''. The ''foo'' package is built with '''arts''' support disabled. Imagine that we want to enable '''arts'''. Here is how to do it:
+
* find where the ''foo'' package located. You can do this by:
+
 
+
** searching for ''foo'' at [http://archlinux.org/packages.php]
+
** using the find command:
+
 
+
  <pre>
+
  find /var/abs -name "foo"</pre>
+
 
+
** using the slocate command:
+
 
+
  <pre>
+
  slocate foo | grep ^/var/abs</pre>
+
 
+
In any case, you'll find that foo is part of <code>extra</code> and <code>multimedia</code> (for example)
+
 
+
* copy the ''foo'' <code>ABS</code> to <code>/var/abs/local/foo</code>
+
 
+
  <pre>
+
  cp -r /var/abs/extra/multimedia/foo/ /var/abs/local
+
  cd /var/abs/local/foo</pre>
+
 
+
* modify the <code>PKGBUILD</code> file; we'll add support for '''arts''':
+
 
+
  <pre>
+
  build() {
+
    cd $startdir/src/$pkgname-$pkgver
+
    ./configure --prefix=/usr
+
    make || return 1
+
    make prefix=$startdir/pkg/usr install
+
  }</pre>
+
 
+
becomes:
+
 
+
  <pre>
+
  build() {
+
    cd $startdir/src/$pkgname-$pkgver
+
    ./configure --enable-arts --prefix=/usr
+
    make || return 1
+
    make prefix=$startdir/pkg/usr install
+
  }</pre>
+
 
+
* launch <code>makepkg</code>:
+
 
+
  <pre>
+
  makepkg -c</pre>
+
(The ''-c'' option cleans up leftover files from the build.)
+
 
+
* install the new package using one of the following commands (<code>-A</code> for install [deprecated method], <code>-U</code> to upgrade or install package):
+
 
+
  <pre>
+
  pacman -A foo-*.pkg.tar.gz
+
  pacman -U foo-*.pkg.tar.gz</pre>
+
 
+
==== Compiler Flags and Customizing makepkg ====
+
 
+
The configuration file for <code>makepkg</code> is <code>/etc/makepkg.conf</code>. Here you can set environment variables for <code>gcc</code> and <code>make</code>, as well as some for <code>makepkg</code> itself. The following is an example of <code>/etc/makepkg.conf</code>.
+
 
+
<pre>
+
#
+
# /etc/makepkg.conf
+
#
+
 
+
#########################################################################
+
# SOURCE ACQUISITION
+
#########################################################################
+
#
+
#-- The FTP/HTTP download utility that makepkg should use to acquire sources
+
FTPAGENT="/usr/bin/wget --continue --passive-ftp --tries=3 --waitretry=3 --no-check-certificate"
+
#FTPAGENT="/usr/bin/snarf"
+
#FTPAGENT="/usr/bin/lftpget -c"
+
 
+
#########################################################################
+
# ARCHITECTURE, COMPILE FLAGS
+
#########################################################################
+
#
+
CARCH="i686"
+
CHOST="i686-pc-linux-gnu"
+
 
+
#-- Exclusive: will only run on i686
+
# -mtune builds exclusively for an architecture
+
# -mcpu optimizes for an architecture, but builds for the whole processor family
+
CFLAGS="-march=i686 -O2 -pipe"
+
CXXFLAGS="-march=i686 -O2 -pipe"
+
#-- Make Flags: change this for DistCC/SMP systems
+
MAKEFLAGS="-j2"
+
 
+
#########################################################################
+
# BUILD ENVIRONMENT
+
#########################################################################
+
#
+
# Defaults: BUILDENV=(!fakeroot !distcc color !ccache)
+
#
+
#-- fakeroot: Allow building packages as a non-root user
+
#-- distcc:  Use the Distributed C/C++/ObjC compiler
+
#-- color:    Colorize output messages
+
#-- ccache:  Use ccache to cache compilation
+
#
+
BUILDENV=(fakeroot !distcc color !ccache)
+
#
+
#-- If using DistCC, your MAKEFLAGS will also need modification. In addition,
+
#-- specify a space-delimited list of hosts running in the DistCC cluster.
+
#DISTCC_HOSTS=""
+
 
+
#########################################################################
+
# GLOBAL PACKAGE OPTIONS
+
#  These are default values for the options=() settings
+
#########################################################################
+
#
+
# Default: OPTIONS=(strip !docs !libtool emptydirs)
+
#
+
#-- strip:    Strip symbols from binaries/libraries
+
#-- docs:      Save doc and info directories
+
#-- libtool:  Leave libtool (.la) files in packages
+
#-- emptydirs: Leave empty directories in packages
+
#
+
OPTIONS=(strip !docs libtool emptydirs)
+
 
+
#-- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512
+
INTEGRITY_CHECK=(md5)
+
#-- Info and doc directories to remove (if option set correctly above)
+
DOC_DIRS=(usr/{,share/}{info,doc,gtk-doc} opt/gnome/{,share/}{info,doc,gtk-doc})
+
 
+
#########################################################################
+
# PACKAGE OUTPUT
+
#########################################################################
+
#
+
# Default: put built package and cached source in build directory
+
#
+
#-- Destination: specify a fixed directory where all packages will be placed
+
PKGDEST=/home/packages
+
#-- Source cache: specify a fixed directory where source files will be cached
+
SRCDEST=/home/sources
+
#-- Packager: name/email of the person or organization building packages
+
PACKAGER="John Doe <john@doe.com>"
+
 
+
# vim: set ft=sh ts=2 sw=2 et:
+
</pre>
+
  
A word of caution: Users should be sure of any changes they may make to the variables <code>CFLAGS</code>, <code>CXXFLAGS</code>, and <code>MAKEFLAGS</code>, as they can cause packages to be unstable or impossible to compile. Also, the average Arch Linux user will not need to change the values for <code>CARCH</code>, <code>CHOST</code>, and <code>USE_FAKEROOT</code>.
 
  
References for gcc and make flags
+
Se artiklen [[Creating Packages]] (Engelsk) for en komplet oversigt over eksempler på PKGBUILDs.
* [http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Option-Summary.html#Option-Summary]
+
* [http://www.gnu.org/software/make/manual/html''chapter/make''9.html#SEC102]
+
  
==== More ABS info ====
+
====Yderligere ABS-information====
  
* [[The Arch package making HOW-TO - with guidelines]]
 
 
* [[Makepkg]]
 
* [[Makepkg]]
 +
* [[Creating Packages]]
 
* [[Safe Cflags]]
 
* [[Safe Cflags]]
 
* [[Kernel Compilation with ABS]]
 
* [[Kernel Compilation with ABS]]
 
* [[ArchLinux User-community Repository (AUR)]]
 
* [[ArchLinux User-community Repository (AUR)]]
 
* [[Custom local repository with ABS and gensync]]
 
* [[Custom local repository with ABS and gensync]]

Revision as of 09:58, 18 June 2012

Template:Article summary start Template:Article summary text Template:Article summary heading Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary wiki Template:Article summary heading Template:Article summary wiki Template:Article summary end

Hvad er ABS?

ABS er en forkortelse af Arch Build System - eller på dansk Archs byggesystem. Det er et 'ports'-lignende system til at bygge software fra kilden.
Hvor Pacman er det specialiserede værktøj i Arch Linux til at håndtere binære pakker (inklusiv pakker, der er bygget med ABS ), er ABS det specialiserede værktøj til at kompilere fra en kilde til en installérbar pkg.tar.gz-pakke.

Hvad er et 'ports'-lignende system?

'Ports' er et system, anvendt af FreeBSD, der lader kilde-pakker blive downloadet, udpakket, tilrettet, kompileret og installeret. En 'port' er blot en lille mappe på brugerens computer med et navn, der svarer til det software der installeres. Denne mappe indeholder nogle få filer med instruktioner for download og installation af en pakke fra en kilde, typisk ved at navigere til mappen - eller porten - og udføre kommandoerne make og make install. Systemet vil så downloade, kompilere og installere det ønskede software.

ABS er et lignende koncept.

ABS laves ud fra et mappetræ, (ABS-træet), der findes under /var/abs, som indeholder mange undermapper. Hver mappe i sin kategori og alle navngivet af deres respective byggebare pakke.
Du kan kalde enhver undermappe - med navn efter pakken - for et ABS. Det samme som man vilde kalde en 'port'. Disse ABS-er - eller undermapper indeholder hverken software-pakken eller kilden, men nærmere en PKGBUILD-fil (og somme tider andre filer). En PKGBUILD er en simpel tekstfil, der indeholder instruktioner til kompilering og pakning, så vel som en URL til det tar-arkiv, som skal downloades. Den vigtigste komponent i ABS er PKGBUILD.

Hurtig gennemgang

Kør kommandoen abs som 'root' for at oprette ABS-træet. Hvis du f.eks. vil bygge editoren Nano fra kilden, skal du kopiere filen /var/abs/core/base/nano til en byggemappe. Gå ind i byggemappen og kør en makepkg. Så enkelt er det.
'Makepkg' vil forsøge at læse og eksekvere de instruktioner, der findes i PKGBUILD-filen. Tar-arkivet fra kilden downloades, udpakkes og kompileres i henhold til de 'CFLAGS', der angives i /etc/makepkg.conf og til sidst klemmes ind i en pakke med fil-endelsen .pkg.tar.gz, som det instrueres i filen PKGBUILD.
Installation er så nemt, som at køre en pacman -U nano.pkg.tar.gz, eller lav pakken og installér den rent med Pacman. Alt med kun én kommando.
Fjernelse af pakken håndteres også af Pacman.

Filen PKGBUILD og andre filerkan selvfølgelig tilpasses som du ønsker, og du kan vælge at benytte 'makepkg'-funktionen i ABS til at lave egne brugertilpassede pakker fra kilder udenfor selve ABS-træet.(Se en prototype på en PKGBUILD og installationsfile under /var/abs/core/)


Med ABS-træet på plads har en Arch Linux-bruger, der vil kompilere fra kilde, alle tilgængelige pakker ved hånden.

Er det det hele?

Ikke helt endnu!

  • Du kan også benytte ABS-værktøjet makepkg til - sammen med dine egne tilpassede PKGBUILDs - til at oprette pakker til dig selv, eller til at dele med fællesskabet. Igen er resultatet - foo.pkg.tar.gz-pakkerne - rent installeres med Pacman.
  • ABS-værktøjerne lader dig benytte Arch Linux-brugernes software-kilde AUR (Arch User Repository), der er fyldt med allerede færdige PKGBUILDs til din bekvemmelighed.
ABS - Systemoversigt

'ABS' kan benyttes som en 'paraply'-terminologi, da det inkluderer - og er afhængig af - flere andre komponenter. Derfor henviser 'ABS' til følgende strukur og værktøjer - selv om det ikke er helt teknisk korrekt - som et komplet værktøjssæt:

  • ABS-træet: Mappestrukturen i ABS under /var/abs/. Det indeholder mange undermapper, navngivet af alle tilgængelige Arch linux software-pakker - men ikke selve pakkerne.
  • ABS: De faktiske mapper navngivet til det byggebare software og indeholdende PKGBUILD.
  • PKGBUILDs: Tekstfiler der ligger under ABS-mapperne med instruktioner til bygning af pakker og kildernes URL.
  • AUR: 'Arch Linux-brugernes software-kilde der indeholder PKGBUILDs fra brugerne til software, der måske ikke er tilgængelige som officielle Arch Linux-pakker.
  • makepkg: Skal-kommando der læser PKGBUILDs, kompilerer kilderne og opretter .pkg.tar.gz-arkiver.
  • Pacman: Pacman er helt udenfor, men bliver nødvendigvis kaldt af scriptet 'makepkg' eller manuelt, til installation eller fjernelse af de byggede pakker eller til at hente afhængigheder.

Hvorfor skulle jeg bruge ABS?

Arch ByggeSystem (ABS) anvendes til:

  • At lave nye pakker fra kilde af software, der endnu ikke er tilgængelig. (Se hvordan du laver pakker til Arch Linux)
  • Bygge og dele disse pakker via AUR
  • Tilpas eksisterende pakker, så de passer til dit behov (aktivere eller deaktivere valgmuligheder)
  • Genopbyg hele dit system med dine kompileringsflag (a la FreeBSD)
  • Bygge og installere din egen tilpassede kerne. (Se Kernel Compilation)
  • Få kernemoduler til at virke med din brugertilpassede kerne.

ABS er ikke nødvendig for at bruge Arch Linux - men det er nyttigt til forskellige kompileringsopgaver.

Denne vejledning forsøger at give dig et overblik over ABS og Arch Linux-pakker. Det er ikke en komplet reference-guide!
Hvis du vil vide mere, skulle du prøve at kigge på man-siderne.

Kom igang! Installér pakker

For at benytte ABS skal du først installere csup og wget. Dette gøres med

pacman -S csup wget

/etc/abs.conf

Redigér /etc/abs.conf til at inkludere dine software-kilder:

nano /etc/abs.conf

Fjern udråbstegnet '!' foran de passende software-kilder som f.eks.:

REPOS=(core extra community !testing)

Opret ABS-træet

Som 'root' køres:

abs

Dit ABS-træ er nu oprettet under /var/abs. Bemærk de passende grene på ABS-træet nu eksisterer og svarer til dem du specificerede i /etc/abs/abs.conf.

Kommandoen abs bør også benyttes til regelmæssigt at synkronisere og opdatere dit ABS-træ.

/etc/makepkg.conf

Redigér filen /etc/makepkg.conf for at angive miljøvariabler og 'CFLAGS':

nano /etc/makepkg.conf

ABS-træet

Når du kører abs for første gang, synkroniseres ABS-træet med Ardh-serveren ved hjælp af 'cvs'-systemet. Hvad er så ABS-træet helt specifikt? Det findes under /var/abs, og ser såledesud:

|-
| -- core/
|-
|     ||-- autoconf/
|-
|     ||-- automake/
|-
|     ||-- ...
|-
| -- devel/
|-
| -- ...
|-
| -- extra/
|-
|      || -- daemons/
|-
|      ||      || -- acpid/
|-
|      ||      ||      || -- PKGBUILD
...    ...    ...    ...

ABS-træet har altså nøjagtigt den samme struktur som pakkedatabasen:

  • Første mappebane repræsenterer kategorier.
  • Anden mappebane repræsenterer selve ABS-erne, hvis navne svarer til de pakker du vil bygge.
  • PKGBUILD-filerne indeholder alt nødvendig information omkring pakken.
  • Endvidere kan en ABS-mappe indeholde rettelser og/eller andre filer, der er nødvendige for at bygge pakken.

Det er vigtigt at forstå, at selve pakkens kildekode ikke findes i ABS-mappen. I stedet for indeholder PKGBUILD-filen en URL fra hvilken ABS automatisk vil downloade.

Opret en mappe til bygning af pakker

Du skal oprette en mappe til bygning af pakker, hvor den faktiske kompilering finder sted. I denne mappe kan du gøre alt, og du bør aldrig ændre ABS-træet ved at bygge inde i det. Det er god praksis at benytte din egen hjemmemappe, selv om mange Arch Linux-brugere foretrækker at oprette en local-mappe under /var/abs/ ejet af normal bruger. Kopiér en ABS fra træet (var/abs/branch/category/pakkenavn) til byggemappen /søgesti/til/byggemappe/.

Opret din byggemappe:

mkdir /home/dit-brugernavn/abs/local

BEMÆRK: Den første download af ABS-træet er den største. Derefter er det kun nødvendigt med mindre opdateringer, så vær ikke bange, hvis du kun har en 56k-tilslutning. Der er kun tale om tekstfiler, som er komprimerede under overførslen.

Nu hvor vi ved, hvad et ABS-træ er - hvordan kan vi så bruge det?

Byggefunktionen - traditionel metode

Hvis du ikke kender til at kompilere fra kilde, skal du vide, at de fleste pakker (dog ikke alle) kan bygges fra kilde på denne traditionelle måde:

  • Download kildens tar-arkiv fra en ekstern server med en web-browser, ftp, wget eller andre metoder.
  • Pak kildefilen ud som eks.:
 tar -xzf foo-0.99.tar.gz
 tar -xjf foo-0.99.tar.bz2
  • Gå ind i mappen:
cd foo-0.99
  • konfigurér pakken. Generelt er der et lille script ved navn configure i kildemappen, der benyttes til at konfigurere pakken (tilføje eller fjerne understøttelse for noget, vælge destination for installation osv.). Scriptet tjekker også, om din computer har det nødvendige software for pakken. Det kan køres med:
./configure <valgmulighed>

Du skulle først prøve valgmuligheden 'help', for bedre at forstå, hvordan det virker:

./configure --help

Hvis ikke valgmuligheden --prefix sættes i scriptet, vil de fleste scripts benytte /usr/local som sti til installationen, mens andre benytter /usr. For en bedre konsistens tilrådes generelt at sætte valgmuligheden --prefix=/usr/local. Det er god praksis at installere personlige programmer i /usr/local, og at have dem, der vedligeholdes af distributionen, anbragt i /usr. Dette tilsikrer, at personlige programmer kan sameksistere med dem, der håndteres af ditributionens pakkehåndtering - i Arch Linux' tilfælde er det Pacman.

./configure --prefix=/usr/local
  • Kompiler kilderne:
make
  • Installér
make install
  • Afinstallering udføres ved at gå ind i kildemappen og køre:
make uninstall

Dog burde du altid læse filen INSTALL, for at se, hvordan pakken skal bygges og installeres! Ikke alle pakker anvender systemet configure; make; make install!

Den her beskrevne måde at kompilere kilde-tar-arkiver kan selvfølgelig stadig benyttes i Arch Linux, men ABS tilbyder et strømlinet, enkelt og elegant alternativ, som du vil se.

Byggefunktionen - ABS-måden

ABS er et elegant værktøj, der yder en stærk assistance og tilpasningsmuligheder til byggeprocessen, samt opretter en pakkefil til installation. ABS-metoden involverer kopiering af en ABS fra træet til en byggemappe og køre en 'makepkg'. I vores eksempel vil vi bygge pakken slim display-håndtering.

  • 1. Kopiér slim ABS fra træet til en byggemappe:
cp -r /var/abs/extra/x11/slim /home/dit-brugernavn/abs/local
  • 2. Navigér til byggemappen:
cd /home/dit-brugernavn/abs/local/slim
  • 3. Kør kommandoen makepkg, der automatisk downloader tar-arkivet fra kilden, pakker ud, kompilerer og opretter filen slim.pkg.tar.gz Valgmuligheden -i kalder Pacman til automatisk at installere den resulterende pakkefil slim.pkg.tar.gz:
makepkg -i

Det var det! Du har lige bygget slim fra kilde og installeret det rent på dit system med Pacman. At fjerne pakken håndteres også af Pacman:

pacman -R slim

Alternativt kan du køre 'makepkg' uden valgmuligheden '-i' og installere pakken manuelt med Pacman:

pacman -U slim.pkg.tar.gz
  • ABS-metoden tilføjer noget bekvemmelighed og automatisering, mens det stadig er fuldstændigt gennemskueligt og fastholder fuld kontrol over bygge- og installations-funktioner, ved at inkludere dem i PKGBUILDs.


Se artiklen Creating Packages (Engelsk) for en komplet oversigt over eksempler på PKGBUILDs.

Yderligere ABS-information