Navn¶
multistrap - bootstraps for flere arkiver
Synopsis¶
multistrap [-a ARKITEKTUR] [-d MAPPE] -f KONFIGURATIONSFIL
multistrap [--simulate] -f KONFIGURATIONSFIL
multistrap -?|-h|--help|--version
Indstillinger¶
-?|-h|--help|--version - vis denne hjælpetekst og afslut.
--dry-run - indsaml konfigurationsopsætningen og vis et referat.
--simulate - svarer til --dry-run
(De følgende indstillinger kan også angives i konfigurationsfilen.)
-a|--arch - arkitektur for pakkerne der skal placeres i multistrap.
-d|--dir - mappe hvor bootstrapen vil blive installeret.
-f|--file - konfigurationsfil for multistrap [krævet]
-s|--shortcut - kort version af -f for filer på kendte placeringer.
--tidy-up - fjern apt cache-data, hentede pakkefiler og pakkemellemlageret for
apt. Svarer til cleanup=true.
--no-auth - tillad brug af arkiver som ikke er godkendte. Svarer til noauth=true
--source-dir MAPPE - flyt indholdet af var/cache/apt/archives/ fra det
indvendige af chrooten til den angivne eksterne mappe, tilføj så
kildepakker for Debian hvor hver brugt binær fil. Svarer til
retainsources=MAPPE. Der gøres ikke noget, hvis den angivne mappe ikke
findes. Kræver --tidy-up for at kunne beregne den fulde liste af
kildepakker, inklusiv afhængigheder.
Beskrivelse¶
multistrap tilbyder en debootstrap-lignende metode baseret på apt og
udvidet til at yde understøttelse af flere arkiver, ved brug af en
konfigurationsfil til at angive de relevante programpakker, arkitekturer,
ekstra pakker og spejlet, som skal bruges for hver bootstrap.
Formålet er at oprette et fuldstændigt bootstrap-/rootfilsystem med
alle pakker installeret og konfigureret, i stedet for bare det
grundlæggende system.
I de fleste tilfælde skal brugerne oprette en konfigurationsfil for hver
forskellig brug af multistrap.
Eksempel på konfiguration:
[General]
arch=armel
directory=/opt/multistrap/
# svarer til indstillingen --tidy-up hvis denne er angivet til true (sand)
cleanup=true
# svarer til indstillingen --no-auth hvis denne er angivet til true (sand)
# nøgleringspakker vist i hver bootstrap vil
# stadig blive installeret.
noauth=false
# udtræk alle hentede arkiver (standard er true)
unpack=true
# hvorvidt /suite skal være eksplicit om hvor apt
# skal kigge efter pakker. Standard er false (falsk).
explicitsuite=false
# aktiver Multiarch for de angivne arkitekturer
# standard er tom
multiarch=
# aptsources er en liste af afsnit, som skal bruges
# af /etc/apt/sources.list.d/multistrap.sources.list
# for målet. Rækkefølgen er ikke vigtig
aptsources=Debian
# denne indstilling i bootstrap afgør hvilket arkiv der bruges
# til at beregne listen af Priority: required-pakker
# og hvilke pakker, som skal i rootfs.
# Rækkefølgen af afsnit er ikke vigtig.
bootstrap=Debian
[Debian]
packages=
source=http://ftp.uk.debian.org/debian
keyring=debian-archive-keyring
suite=lenny
Dette vil resultere i en fuldstændig normal bootstrap af Debian lenny fra
det angivne spejl, for armel i »/opt/multistrap/«. (Denne
konfiguration er bevaret i pakken som
/usr/share/multistrap/lenny.conf)
Angiv en pakke så at multistrap udvides med denne pakke og alle
afhængigheder af denne pakke.
Angiv flere arkiver for bootstrapen ved at tilføje nye afsnit. Afsnitsnavne
skal være angivet i bootstraps generelle indstilling for at pakkerne
bliver inkluderet i bootstrapen.
Angiver hvilke arkiver som vil være tilgængelige i det endelige system
ved opstart ved at angive afsnitsnavnene i aptsources' generelle indstilling,
f.eks. at ekskludere nogle interne kilder eller når der bruges et lokalt
spejl under bygning af rootfs.
Der er forskel på store/små bogstaver i afsnitsnavne.
Alle afhængigheder løses kun af apt, der bruger alle
bootstrap-arkiver, for at sikre at kun de nyeste og bedst egnede
afhængigheder bruges. Bemærk at multistrap slukker for
Install-Recommends så hvis multistrap har brug for en pakke, som kun er
en anbefalet afhængighed, skal den anbefalede pakke angives specifikt i
pakkelinjen. Se "Explicit suite specification" for yderligere
information om at hente specifikke pakker fra specifikke programpakker.
»Architecture« (arkitektur) og »directory« (mappe) kan
overskrives på kommandolinjen. Andre generelle indstillinger har
også kommandolinjetilvalg.
Genveje¶
På samme måde som "debootstrap" så understøtter
"multistrap" reference til konfigurationsfiler på kendte
placeringer for genveje. Når der bruges tilvalget "--shortcut"
så vil "multistrap" kigge efter filer i
/usr/share/multistrap og så
/etc/multistrap.d/,
tilføjende en ».conf-endelse« til den angivne genvej.
Disse to kommandoer har ens betydning:
$ sudo multistrap -s sid
$ sudo multistrap -f /usr/share/multistrap/sid.conf
Bemærk at "multistrap" stadig vil fejle hvis selve
konfigurationsfilen ikke angiver mappen eller arkitekturen.
Arkiver¶
"aptsources" viser afsnittene, som skal bruges til at oprette
apt-kilderne
/etc/apt/sources.list.d/multistrap.list i det endelige
system. Ikke alle "aptsources" skal fremgå i afsnittet
"bootstrap", hvis du har nogle interne eller lokale kilder, som ikke
er tilgængelige for det installerede rodfilsystem.
"bootstrap" viser afsnittene, som vil blive brugt til at oprette selve
multistrap. Kun pakker vist i "bootstrap" vil blive hentet og
udpakket af multistrap.
Vær sikker på at "bootstrap" viser alle afsnit, du skal
bruge for at apt kan finde alle pakkerne, som skal udpakkes for multistrap.
(ældre versioner af multistrap understøtter den samme indstilling
under navnet "debootstrap" - denne stavning er stadig
understøttet, men nye konfigurationsfiler bør i stedet for indeholde
"bootstrap".
Generel opsætning:¶
»arch« (arkitektur) kan overskrives på kommandolinjen med
tilvalget "--arch".
»directory« (mappe) angiver den øverste niveaumappe, hvor
bootstrap vil blive oprettet - den er ikke pakket i en .tgz, når den
først er færdig.
»bootstrap« viser afsnittene, som vil blive brugt til at angive
pakkerne, som vil blive hentet (og valgfrit udpakket) i bootstrap.
»aptsources« (apt-kilder) viser afsnittene, som vil blive brugt til at
angive apt-kilderne i det endelige system, f.eks. hvis du skal bruge et lokalt
arkiv til at oprette rootfs, som ikke vil være tilgængelig på
kørselstidspunktet, angiv dette afsnit i "bootstrap" men ikke i
"aptsources".
Hvis du ønsker at en pakke skal være i rootfs, så skal
must være angivet i listen "bootstrap" under generelt.
Rækkefølgen for afsnitsnavn i begge lister er ikke vigtig.
Som med debootstrap vil multistrap fortsætte efter fejl, så længe
at konfigurationsfilen kan blive korrekt fortolket.
multistrap implementerer også understøttelse af machine:variant som
oprindeligt blev brugt i Emdebian Crush, dog i en anden implementering. Brug
af konfigurationsunderstøttelse af kaskade, specielt kombinationer af
machine:variant kan understøttes med simple ændringer på
kommandolinjen.
Angivelse af "tarballname" til true (sand) pakker også det
endelige filsystem ned i en tarball.
Bemærk at multistrap ignorerer alle indstillinger, den ikke genkender i
konfigurationsfilen - dette tillader bagglæns kompatibilitet samt
overbelastning af multistraps konfigurationsfiler for understøttelse af
andre værktøjer (såsom pbuilder). Brug indstillingen
"--simulate" for at se den kombinerede konfigurationsopsætning.
Multistrap vil dog afbryde såfremt at selve konfigurationsfilen ikke kan
fortolkes. Kontroller at konfigurationsfilen har en nøgle og en
værdi for hver linje, udover kommentarer. Værdier skal alle
være på den samme linje som nøglen.
Afsnitsindstillinger¶
[Debian]
packages=
source=http://ftp.uk.debian.org/debian
keyring=debian-archive-keyring
suite=lenny
Afsnitsnavnet (i []-parenteser) skal være unikke for denne
konfigurationsfil og i enhver konfigurationsfil som denne fil inkluderer. Der
er ikke forskel på store og små bogstaver i afsnitsnavne (alle
sammenligninger sker efter konvertering til små bogstaver).
»packages« (pakker) er listen over pakker, der skal tilføjes
når dette afsnit er vist i "bootstrap" - alle pakkenavne skal
befinde sig på en enkelt linje ellers vil filen ikke kunne fortolkes. Et
alternativ er at definere din pakkeliste som flere grupper med pakker adskilt
via funktion eller afhængighed, f.eks. base, Xorg, netværk etc. og
vise hver gruppe under »bootstrap«.
bootstrap=base networking
[base]
packages=udev mtd-utils
source=http://www.emdebian.org/grip
keyring=emdebian-archive-keyring
suite=lenny
[networking]
packages=netbase ifupdown iproute net-tools samba
source=http://www.emdebian.org/grip
keyring=emdebian-archive-keyring
suite=lenny
Som et specielt tilfælde så understøtter "multistrap"
også flere pakkenøgler per afsnit, en linje for hver. Andre
nøgler kan ikke gentages på denne måde.
[Emdebian]
packages=udev mtd-utils netbase ifupdown iproute
packages=busybox net-tools samba
source=http://www.emdebian.org/grip
keyring=emdebian-archive-keyring
suite=lenny
»source« (kilde) er apt-kilden, der skal bruges for dette afsnit. For
at bruge en lokal kilde på den samme maskine, så sikr dig at du
bruger "
copy://" ikke "
file://", så at apt får
besked om at kopiere pakkerne til rootfs i stedet for at antage at den kan
forsøge at hente dem senere - da dette »senere« aldrig vil ske.
»keyring« (nøglering) viser pakken som indeholder nøglen
brugt af kilden angivet i dette afsnit. Hvis ingen nøglering er angivet,
så skal indstillingen "noauth" være angivet til
true. Se Secure Apt.
»suite« (programpakke) er programpakken der skal bruges fra denne
kilde. Bemærk at dette skal være programpakken og ikke kodenavnet.
Programpakker ændrer sig fra gang til gang: (oldstable, stable, testing,
sid). Kodenavnet (etch, lenny, squeeze, sid) ændrer sig ikke.
Secure Apt¶
For at bruge godkendte apt-arkiver, skal multistrap enten kunne installere en
passende nøgleringspakke fra de eksisterende apt-kilder
udenfor
multistrap-miljøet til destinationssystemet. Desværre kan
nøgleringspakker ikke hentes fra arkiverne angivet i konfigurationen af
multistrap - dette skyldes at "apt" kræver nøgleringen,
der skal opdateres, før den kan bruge arkiver, der ikke tidligere er
kendt.
Hvis relevante pakker findes så angiv dem i tilvalget »keyring«
for hvert arkiv. multistrap vil så tjekke, at apt allerede har
installeret denne pakke, så at arkivet kan blive godkendt før nogen
pakke hentes fra det.
Bemærk at
all-arkiver, som skal bruges med multistrap, skal
godkendes ellers vil apt fejle. På lignende vis kan secure apt kun
deaktiveres for alle arkiver (ved at bruge kommandolinjeindstillingen
--no-auth eller sætte den generelle noauth-indstilling i
konfigurationsfilen), selv hvis kun et arkiv ikke har en egnet nøglering
tilgængelig.
Nøgleringpakkerne vil også blive installeret i multistrap-miljøet
for at matche de installerede apt-kilder for multistrap.
Tilstand¶
multistrap er tilstandsløs - hvis mappen findes vil den simpelthen
fortsætte som normalt og apt vil forsøge at fortsætte hvor den
slap.
Konfiguration af rodfilsystem¶
multistrap udpakker de hentede pakker, men andre stadier af
systemkonfigurationen bliver ikke gennemført. Eksempler inkluderer:
/etc/inittab
/etc/fstab
/etc/hosts
/etc/securetty
/etc/modules
/etc/hostname
/etc/network/interfaces
/etc/init.d
/etc/dhcp3
Alle enhedsspecifikke enhedsknuder vil også skulle oprettes med brug af
MAKEDEV eller "device-table.pl" - et hjælpeskript som kan
omgå nogle af problemerne med MAKEDEV.
device-table.pl kræver
en enhedstabelfil, der ligner den i kildepakken mtd-utils. Se
/usr/share/doc/multistrap/examples/device_table.txt
Når først multistrap har oprettet det grundlæggende fil- og
mappelayout, er andre enhedsspecifikke skripter krævet, før
filsystemet kan pakkes ud og installeres på målenheden.
Når først installeret skal pakkerne konfigureres med
pakkevedligeholdelsesskripter og "dpkg --configure -a", med mindre
dette er en standardmultistrap.
For at "dpkg" virker skal
/proc og
/sysfs monteres
(eller være monterbare),
/dev/pts anbefales også.
Se også:
http://wiki.debian.org/Multistrap
Miljø¶
For at konfigurere de ikke pakkede pakker (enten i standard eller
krydstilstand), er bestemte miljøvariabler krævet:
Debconf skal have information om. at brugerinteraktion ikke er ønsket for
at acceptere dette:
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
Perl skal have at vide, at ingen sprog er tilgængelige inden i chroot og at
den ikke skal beklage sig:
LC_ALL=C LANGUAGE=C LANG=C
Så kan dpkg konfigurere pakkerne:
chroot-metode (STI = øverste mappe i chroot):
DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \
LC_ALL=C LANGUAGE=C LANG=C chroot /PATH/ dpkg --configure -a
ved en logindskal:
# export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
# export LC_ALL=C LANGUAGE=C LANG=C
# dpkg --configure -a
(Som ovenstående kræver dpkg at
/proc og
/sysfs er
monteret først.)
Standardtilstand - multistrap¶
multistrap er ikke ment som systemets egen understøttelse, det blev
udviklet for understøttelse af flere arkitekturer. For at flere arkiver
kan bruges, udpakker multistrap kun de pakker, som er valgt af apt.
I standardtilstand vil forskellige post-multistrap-handlinger sandsynligvis
være krævet, som debootstrap ellers ville udføre for dig:
1. kopier /etc/hosts til chroot
2. ryd miljøet for at fjerne valg af LANGUAGE, LC_ALL og LANG
for at fjerne irriterende perladvarsler som forvirrer i forhold til andre fejl
(Et alternativ til at fjerne valg af sprogvariabler er at tilføje sprog til
din konfigurationsfil i multistrap under indstillingen »packages«.
En standardmultistrap kan bruges direkte med chroot, så
"multistrap" kører "dpkg --configure -a" i slutningen
af multistrap-processen, med mindre indstillingen
ignorenativesearch er
angivet til true (sand) i afsnittet
General i konfigurationsfilen.
Dæmoner i chrooter¶
Afhængig af hvilket system du bruger til at tilbyde pakkerne for
"multistrap", så skal standardchrooter normalt ikke tillade
dæmoner at starte inden i chrooten. Brug
/usr/share/multistrap/chroot.sh som din "setupscript" eller
inkluder dette skript i dit eget opsætningsskript.
setupscript=/usr/share/multistrap/chroot.sh
chroot.sh håndterer systemer der bruger
sysvinit og
upstart.
Se også
http://people.debian.org/~hmh/invokerc.d-policyrc.d-specification.txt
Kaskadekonfiguration¶
For at understøtte forskellige varianter af en grundlæggende
(fælles) konfiguration, tillader "multistrap" at
konfigurationsfiler inkluderer andre (mere generelle) konfigurationsfiler. Det
vil sige, at den mest detaljerede/specifikke konfigurationsfil er angivet
på kommandolinjen og den fil inkluderer en anden fil, som deles af andre
konfigurationer.
Basisfil:
/usr/share/multistrap/crosschroot.conf
Variationer:
/usr/share/multistrap/armel.conf
Angivelse af kun filen armel.conf vil gøre at resten af indstillingerne vil
komme fra crosschroot.conf, så at almindelige ændringer kun skal
foretages i en enkel fil.
Det anbefales
stærkt at alle ændringer til
konfigurationsfilerne involveret i alle kaskader testes med brug af tilvalget
"--simulate" i multistrap som vil vise et referat af
indstillingerne, som har været angivet når først kaskaden er
færdig. Bemærk at multistrap ikke
advarer dig hvis en
konfigurationsfil indeholder et tilvalg, som ikke bliver genkendt (for
fremtidig kompatibilitet med backported-konfigurationer), så en simpel
tastefejl kan resultere i at et tilvalg ikke bliver angivet.
Understøttelse af Machine:variant¶
De gamle packages.conf-variabler fra emsandbox kan alle konverteres til
"multistrap"-konfigurationsvariabler. Understøttelsen af
machine:variant i "multistrap" koncentrerer sig om skripterne,
config.sh og
setup.sh
Bemærk:
machine:variant-understøttelse vil sandsynligvis blive
erstattet af hook-funktionaliteten som beskrevet nedenfor.
Når "multistrap" har udpakket de hentede pakker, kan
"setup.sh" kaldes og videresende placeringen og arkitekturen på
rodfilsystemet, så en anden fintuning kan udføres. På dette
stadie, må ingen handlinger i rootfs forsøge at køre
binære filer inden i rootfs. Som det endelige stadie i
multistrapprocessen kopieres "config.sh" ind i rodmappen på
rootfs'erne.
En af fordelene ved at bruge understøttelse af machine:variant er at hele
rodfilsystemet kan håndteres ved et enkelt kald til multistrap - dette er
brugbart, når der bygges rodfilsystemer i brugerrum.
For at aktivere understøttelse af machine:variant så angiv stien til
skripterne, som skal kaldes i variantkonfigurationsfilen (Generelt afsnit):
[General]
include=/path/to/general.conf
setupscript=/path/to/setup.sh
configscript=/path/to/config.sh
Begrænsning af pakkevalg¶
"multistrap" inkluderer »Required packages« som standard,
den aktuelle liste af pakker på din maskine kan ses med:
grep-available -FPriority 'required' -sPackage
(Den aktuelle liste beregnes fra de hentede pakkefiler og kan være
forskellig fra resultatet af "grep-available".)
Hvis tilvalget OmitRequired er angivet som true (sand), så vil disse pakker
ikke blive tilføjet - selvom brugbart kan dette tilvalg nemt føre
til en ubrugelig rootfs. Kun pakkerne, som manuelt er angivet i
konfigurationsfilerne, vil blive brugt i beregningerne - afhængigheder af
disse pakker vil blive tilføjet men ingen andre.
Tilføjelse af »Priority: important packages«¶
"multistrap" kan imitere "debootstrap" ved automatisk at
tilføje alle pakker fra alle afsnit hvor den hentede pakkeliste viser
pakken som »Priority: important«. Standarden er ikke at tilføje
sådanne pakker med mindre individuelt inkluderet i en indstilling for
"packages=" i et afsnit angivet i den generelle indstilling
"bootstrap". For at tilføje alle sådanne pakker, så
sæt indstillingen addimportant til true (sand) i det generelle afsnit.
addimportant=true
»Priority: important« kan kun fungere for alle afsnit angivet i
indstillingen "bootstrap". Dette kan medføre lidt forvirring,
når programpakker blandes.
Det er ikke muligt at aktivere addimportant og omitrequired i den samme
konfiguration. "multistrap" vil afslutte med fejlkoden 7 hvis en
konfiguration resulterer i at addimportant og omitrequired begge er sat til
true (sand). (Dette inkluderer effekterne af inkludering af andre
konfigurationsfiler).
Anbefalet opførsel¶
Standardopførelsen for Debian efter Lenny-udgivelsen var at overveje
anbefalede pakker som ekstra pakker, der skulle installeres når en anden
pakke er valgt. Anbefalede pakker er dem som vedligeholderen forventer at se
på de "fleste" installationer af den pakke og tilladelse af
anbefalede betyder tilladelse af anbefalinger af anbefalede pakker og så
videre.
Standarden for multistrap er et slå anbefalinger OFF (FRA).
Sæt indstillingen allowrecommends til true (sand) i det generelle afsnit
for at bruge typisk Debianopførsel.
Standardudgivelse¶
If your system specifies a default-release for apt, this can cause problems when
trying to create a bootstrap which does not include the default suite. To
counter this, "multistrap" sets a wildcard for the Default Release
within the bootstrap. See also: apt preferences.
Explicit suite specification¶
Undertiden har apt behov for at få at vide, at den skal hente en specifik
pakke fra en bestemt programpakke, og dermed ignorere en nyere version i en
anden programpakke i det samme sæt af kilder.
"multistrap" kan fungere med eller uden den eksplicitte
programpakkeindstilling, standarden er at lade apt bruge den nyeste version
fra samlingen af angivne
bootstrap-kilder.
Explicit suite specification has no effect on the final installed system - if
your aptsources includes a repository which in turn includes a newer version
of the package(s) specified explicitly, the next "apt-get upgrade"
on the device will bring in the newer version.
Also, when specifying packages to get from a specific suite, apt will also try
and ensure that the dependencies for that package are also from the same suite
and this can cause apt to be unable to resolve the complete set of
dependencies. In this situation, being explicit about one package selection
may require being explicit about some (not necessarily all) of the
dependencies of that package as well.
When using this support in Lenny, ensure that each section uses the suite
(oldstable, stable, testing, sid) and
not the codename (etch, lenny,
squeeze, sid) in the "suite" configuration item as the version of
apt in Lenny and previous cannot use the codename.
For at teste - på Lenny - så prøv:
$ sudo apt-get install apt/stable
Sammenlign med
$ sudo apt-get install apt/lenny
When using explicitsuite, take care in using stable-proposed-updates or other
temporary locations - if the package migrates into another suite and is
removed from the temporary suite (as with *-proposed-updates), multistrap will
not be able to find the package.
Explicit suite handling can be very hard to get right. In general, it is best to
create a small bootstrap chroot of your native arch, then chroot into it, add
the relevant apt sources and work out exactly what commands are necessary to
get the correct mix of packages. Avoid specifying explicit versions to sort
out problems, work with suites only. Apt preferences / pinning may be useful
here, see Apt preferences.
Apt-præferencer¶
If a suitable file is listed in the
aptpreferences option of the
General section of the configuration file, this file will be copied
into the apt preferences directory of the bootstrap before apt is first used.
When an apt preferences file
is provided, the "Default-Release"
behaviour of "multistrap" is disabled.
As with other external scripts and files, the content of the apt preferences
file is beyond the scope of this manpage. "multistrap" does not try
to verify the supplied file other than ensuring that it can be read.
Udeladelse af deb-src-visninger¶
Some multistrap environments do not need access to the Debian sources of
packages being installed, typically this is required when preparing a build
(or cross-build) chroot using multistrap.
To turn off this additional source (and save both download time and apt-cache
size), use the omitdebsrc field in each Section.
[Baked]
packages=
source=http://www.emdebian.org/baked
keyring=emdebian-archive-keyring
suite=testing
omitdebsrc=true
omitdebsrc er nødvendig når der bruges pakker fra debian-ports hvor
pakker ikke har kilder, undtagen »unreleased«.
fakeroot¶
Bootstraps for fremmede arkitekturer kan fungere under "fakeroot"
("multistrap" er designet til at gøre så meget som muligt
med et enkelt kald for at gøre dette nemmere) men konfigurationsstadiet
som normalt foregår med en standardarkitektur for bootstrap kræver
"chroot" og "chroot", den vil ikke selv fungere under
"fakeroot".
Hvis "multistrap" detekterer at "fakeroot" er i brug,
så springes den normale tilstandskonfiguration over med en advarsel.
Det samme problem gælder for "apt-get install" og derfor springes
installationen af nøgleringspakken på værtssystemet også
over hvis fakeroot detekteres.
Håndtering af problematiske pakker¶
Undertiden vil en specifik pakke fejle i endda at blive udpakket korrekt hvis
andre pakker ikke allerede er blevet pakket ud. Dette kan ske hvis
dpkg-diversioner ikke er sat korrekt op eller hvis pakken
forhåndsafhænger af en køre fil i en anden pakke.
Multistrap tilbyder to måder at håndtere disse problemer. En pakke kan
vises som "reinstall" eller som "additional". Hvert afsnit
i konfigurationsfilen "multistrap" kan have en enkelt
"reinstall"- eller "additional"-visning eller begge.
Geninstallation betyder at pakken vil blive hentet og udpakket som normalt -
sammen med alle de andre pakker, men vil så blive geninstalleret i
slutningen ved at køre vedligeholderskriptet "preinst" med
argumenet "upgrade". "dpkg" vil så fortsætte
resten af konfigurationen for den pakke.
»Additional« tilføjer en anden runde af "apt-get
install" til multistrapprocessen - efter den første udpakning. Den
yderligere pakke vil så blive hentet og udpakket. Hvis kørt
standardmæssigt, så hentes den øvrige pakke, udpakkes og
konfigureres efter at resten af pakkerne er blevet hentet, udpakket og
konfigureret.
Hverken "reinstall" eller "additional" skal ses som andet
end omgåelser og wishlist-fejlrapporter bør udarbejdes i Debian mod
pakker som kræver brug af disse mekanismer (eller pakkerne som forhindrer
den omtalte
Debconfs forudindstillinger¶
Tilføjelse af en forudindstilling for debconf kan hjælpe med at
konfigurere pakker til en bestemt indstilling i stedet for pakkestandarden,
når konfigurationen køres uden interaktion. Se
http://www.debian-administration.org/articles/394 for information om hvordan
du oprette indstillingsfiler (seed files).
Flere indstillingsfiler (seed files) kan angives med brug af feltet debconfseed
i afsnittet [General], adskilt af mellemrum:
debconfseed=seed1 seed2
Filer som ikke findes eller som ikke kan åbnes vil - i tavshed - blive
ignoret. Kontroller resultatet af fortolkningen med brug af indstillingen
"--simulate" for "multistrap".
Hooks¶
Hvis en hook-mappe angives i afsnittet General i konfigurationsfilen for
"multistrap", så vil hook-skripterne, som er kørbare,
blive kørt uden for multistrapmappen på de følgende stadier:
- hentede hooks
- Køres før udpakning er startet, umiddelbart efter
at pakkerne er blevet hentet. Hentede hooks er kørbare skripter i den
angivne hook-mappe med et filnavn der begynder med download.
- native hooks
- Native hook-skripter køres kun i tilstanden native,
umiddelbart før start af konfigurationen af hentede pakker og igen
efter færdiggørelse af pakkekonfigurationen. Native hooks vil
blive kaldt den absolutte sti og den aktuelle fremgangstilstand, start
eller slut.
Native skripter er kørbare skripter i den angivne hook-mappe med et
filnavn der begynder med native.
- completion hooks
- Køres umiddelbart før at tarballen oprettes eller
hvis "multistrap" ikke er konfigureret til at oprette en
tarball.
Færdiggørelsesskripter er kørbare skripter i den angivne
ophængningsmappe med et filnavn der begynder med
"completion".
Ophænginger (hooks) får den absolute sit til mappen, som vil være
på det øverste mappeniveau for chroot- eller multistrapsystemet.
Ophængninger som ikke kan slås op med realpath, eller som ikke kan
køres, vil blive ignoreret.
Alle ophængninger af ens type sorteres i alfabetisk rækkefølge
før de køres.
Bemærk at "multistrap" ikke ruller effekterne af
ophængninger (hooks) tilbage i tilfælde af fejl.
"multistrap" vil dog rapportere de opsamlede fejl som advarsler.
Hvis en ophængning findes som andet end nul, så konverteres
afslutningsværdien til et positivt tal og tilføjes til det samlede
antal advarsler, rapporteret til sidste i operationen.
Uddata¶
"multistrap" kan lave en masse uddata - informative beskeder vises
på STANDARDUD, fejl og advarsler på STANDARDFEJL. Kald til
"apt" og "dpk" respekterer det samme mønster, så
det er simpelt at trimme de kombinerede uddata for "multistrap" til
kun fejlene, hvis det ønskes.
"multistrap" opsamler fejltilstande fra processer der ikke er fatale
under operationen og rapporterer disse som advarsler på STANDARDFEJL samt
afslutter med det opsamlede antal fejl. Dette inkluderer ophænginger
(hooks) som rapporter afslutningsværdier forskellige fra nul.
Fejl¶
Efterhånden som "multistrap" bliver mere kompleks, så vil
fejl snige sig ind i pakken. Rapporter venligst alle fejl til Debian BT med
værktøjet "reportbug" og
venligst vedhæft alle
konfigurationsfiler. Hvis din konfiguration skal tilgå lokale eller
private apt-arkiver, så kontroller venligst konfigurationen med den
seneste version af "multistrap" i Debian med tilvalget
"--simulate" og inkluder den rapport i din fejlrapport.
Tilvalget "--simulate" udvides løbende for at hjælpe
brugerne med at fejlsøge problmer i konfigurationsfilerne.
Kontroller venligst også (og opdater) Multistraps wiki på
http://wiki.debian.org/Multistrap og internetsidens indhold på
http://www.emdebian.org/multistrap/ før du indsender fejlrapporter.
Forskellige personer på postlisten debian-embedded@lists.debian.org og
IRC-kanalen #emdebian på irc.oftc.net kan også hjælpe hvis din
konfigurationsfil ikke fortolker korrekt. Du skal placere resultatet af
"--simulate" på en pastebin-internetside og placere adressen i
din besked.
Understøttelse af flere arkitekturer¶
Understøttelse af flere arkitekturer er eksperimentelt - rapporter venligst
problemer og indsend fejlrapporter med alle detaljer om din opsætning,
hele konfigurationsfilen for multistrap og de fejl der registreres.
"multistrap" overskriver den eksisterende understøttelse af flere
arkitekturer på det eksterne system, så at et sytem der er
opmærksom på MultiArch kan stadig oprette en ikke-MultiArch chroot
fra arkiver, som ikke understøtter alle arkitekturerne understøttet
af den eksterne dpkg.
Hvis flere arkitekturer er aktiveret i multistrap chroot, så udskriver
"multistrap" listen i
/var/lib/dpkg/arch inden i chroot.
For flere arkitekturer så angiv tilvalget en gang og bruge en
mellemrumsadskilt liste for arkitekturlisten. Sikr dig at du inkluderer hvad
der vil være værtsarkitekturen for chroot.
Se også
http://wiki.debian.org/Multiarch/
[General]
...
multiarch=i386 armel armhf
Hvert afsnit vil installere pakker fra basisarkitekturen med mindre
indstililngen "Architecture" er angivet for bestemte afsnit.
[Foreign]
packages=libgcc1 libc6
architecture=armel
source=http://ftp.uk.debian.org/debian
keyring=debian-archive-keyring
suite=sid
In the "--simulate" output, the architecture(s) specified in the
MultiArch option will be listed under the "Foreign architectures"
listing. Packages for a specific architecture will be listed as the package
name followed by a colon followed by the architecture.
libgcc1:armel libc6:armel