User talk:Jan-portugal
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.
- /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:
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]
Start a discussion with Jan-portugal
Talk pages are where people discuss how to make content on ArchWiki the best that it can be. Start a new discussion to connect and collaborate with Jan-portugal. What you say here will be public for others to see.