User talk:Jan-portugal

From ArchWiki
Jump to: navigation, search


Nyttige valgmuligheder

Nogle nyttige valgmuligheder for 'makepkg options' fra man-siden (Forklaringer er oversat til dansk):

-c, --clean

            Fjerner efterladte arbejdsfiler og mapper efter successfuld opbygning

-f, --force

            makepkg  bygger ikke en pakke, hvis en bygget pakke allerede findes i mappen PKGDEST (sat i /etc/makepkg.conf), 
            der som standard viser til den aktuelle mappe. Dette tillader, at en bygget pakke overskrives.

-i, --install

            Installér eller opgradér pakken efter successfuld bygning med Pacman.

-s, --syncdeps

            Installér manglende afhængigheder med Pacman. Når der mangler byggetids- eller kørselstids-afhængigheder
            prøver Pacman at løse dem. Hvis det lykkes, downloades og installeres de manglende pakker.

Således vil kommandoen makepkg -csi hente alle afhængigheder (hvis der er nogen), installere (med Pacman) og fjerne alle overskydende arbejdsfiler fra byggemappen.

Igen - se man makepkg for mere information.


[edit] Første gang du bruger ABS: Tilpas en pakke

Denne situation kan forekomme oftere end du tror. Officielle pakker er kompilerede med et antal valgmuligheder --enable eller --disable forvalgt, hvor de ikke er i overensstemmelse med dine valg.

For at illustrere dette, vil vi tage et eksempel - foo. Pakken foo er bygget med arts-understøttelse deaktiveret. Forestil dig, at vi ønsker at aktivere arts. Det gøres på følgende måde:

   * find ud af, hvor pakken foo er placeret. Det kan du gøre med: 
   *
         o søg efter foo i pakkedatabasen
         o med kommandoen find: 
 find /var/abs -name "foo"
   *
         o med kommandoen slocate: 
 slocate foo | grep ^/var/abs

på begge måder finder du f.eks. at foo er en del af extra og multimedia

   * kopiér foo-ABS til /var/abs/local/foo 
 cp -r /var/abs/extra/multimedia/foo/ /var/abs/local
 cd /var/abs/local/foo
   * ret filen PKGBUILD, så vi tilføjer arts-understøttelse: 
 build() {
   cd $startdir/src/$pkgname-$pkgver
   ./configure --prefix=/usr
   make || return 1
   make prefix=$startdir/pkg/usr install
 }

rettes til:

 build() {
   cd $startdir/src/$pkgname-$pkgver
   ./configure --enable-arts --prefix=/usr
   make || return 1
   make prefix=$startdir/pkg/usr install
 }
   * kør makepkg: 
 makepkg -c

(Valgmuligheden '-c' fjerner overskydende filer fra pakkebygningen)

   * installér den nye pakke med en af de følgende kommandoer (-A for installation [ikke så god metode], -U for at opgradere eller installere pakken): 
 pacman -A foo-*.pkg.tar.gz
 pacman -U foo-*.pkg.tar.gz

[edit] Kompilér flag og tilpas 'makepkg'

Konfigurationsfilen for makepkg er /etc/makepkg.conf. Her kan du sætte miljøvarianter for gcc og make, samt nogle for selve makepkg. Det følgende er et eksempel på /etc/makepkg.conf.

  1. /etc/makepkg.conf
  1. SOURCE ACQUISITION
  2. -- 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"

  1. FTPAGENT="/usr/bin/snarf"
  2. FTPAGENT="/usr/bin/lftpget -c"
  1. ARCHITECTURE, COMPILE FLAGS

CARCH="i686" CHOST="i686-pc-linux-gnu"

  1. -- Exclusive: will only run on i686
  2. -mtune builds exclusively for an architecture
  3. -mcpu optimizes for an architecture, but builds for the whole processor family

CFLAGS="-march=i686 -O2 -pipe" CXXFLAGS="-march=i686 -O2 -pipe"

  1. -- Make Flags: change this for DistCC/SMP systems

MAKEFLAGS="-j2"

  1. BUILD ENVIRONMENT
  2. Defaults: BUILDENV=(!fakeroot !distcc color !ccache)
  3. -- fakeroot: Allow building packages as a non-root user
  4. -- distcc: Use the Distributed C/C++/ObjC compiler
  5. -- color: Colorize output messages
  6. -- ccache: Use ccache to cache compilation

BUILDENV=(fakeroot !distcc color !ccache)

  1. -- If using DistCC, your MAKEFLAGS will also need modification. In addition,
  2. -- specify a space-delimited list of hosts running in the DistCC cluster.
  3. DISTCC_HOSTS=""
  1. GLOBAL PACKAGE OPTIONS
  2. These are default values for the options=() settings
  3. Default: OPTIONS=(strip !docs !libtool emptydirs)
  4. -- strip: Strip symbols from binaries/libraries
  5. -- docs: Save doc and info directories
  6. -- libtool: Leave libtool (.la) files in packages
  7. -- emptydirs: Leave empty directories in packages

OPTIONS=(strip !docs libtool emptydirs)

  1. -- File integrity checks to use. Valid: md5, sha1, sha256, sha384, sha512

INTEGRITY_CHECK=(md5)

  1. -- 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})

  1. PACKAGE OUTPUT
  2. Default: put built package and cached source in build directory
  3. -- Destination: specify a fixed directory where all packages will be placed

PKGDEST=/home/packages

  1. -- Source cache: specify a fixed directory where source files will be cached

SRCDEST=/home/sources

  1. -- Packager: name/email of the person or organization building packages

PACKAGER="John Doe <john@doe.com>"

  1. vim: set ft=sh ts=2 sw=2 et:

Lige en lille advarsel: Brugere skal være helt sikre, før de ændrer på variablerne CFLAGS, CXXFLAGS, og MAKEFLAGS, da det kan forårsage, at pakker bliver ustabile eller umulige at kompilere. Den almindelige Arch Linux-bruger har heller ikke behov for at ændre værdierne for CARCH, CHOST, og USE_FAKEROOT.

Referencer for 'gcc'- og 'make'-flag:

   * http://gcc.gnu.org/onlinedocs/gcc-3.4.3/gcc/Option-Summary.html#Option-Summary
   * http://www.gnu.org/software/make/manual/ 

[edit]