Provided by: multistrap_2.2.11_all 

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=jessie
This will result in a completely normal bootstrap of Debian Jessie from the specified mirror, for armel
in '/opt/multistrap/'. (This configuration is retained in the package as
/usr/share/multistrap/jessie.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.
Online examples and documentation
"multistrap" supports a range of permutations, see the wiki and the emdebian website for more information
and example configurations:
http://wiki.debian.org/Multistrap
http://www.emdebian.org/multistrap/
"multistrap" includes an example configuration file with a full list of all supported config file
options: /usr/share/doc/multistrap/examples/full.conf
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.
If "markauto" is set to true, "multistrap" will request apt to mark all packages specified in the
combined "packages" list as manually installed and all dependencies not explicitly listed as
automatically installed in the APT extended state database. "markauto" can be used independently of
"unpack".
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=jessie
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://http.debian.net/debian
keyring=debian-archive-keyring
suite=jessie
[networking]
packages=netbase ifupdown iproute net-tools samba
source=http://http.debian.net/debian
keyring=debian-archive-keyring
suite=jessie
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://http.debian.net/debian
keyring=debian-archive-keyring
suite=jessie
»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.
Suites change from time to time: (oldstable, stable, testing, sid) The codename (squeeze, wheezy,
jessie, sid) does not change.
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
Ensure that both the setupscript and the configscript are executable or "multistrap" will ignore the
script.
Example configscript.sh
#!/bin/sh
set -e
export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
export LC_ALL=C LANGUAGE=C LANG=C
/var/lib/dpkg/info/dash.preinst install
dpkg --configure -a
mount proc -t proc /proc
dpkg --configure -a
umount /proc
For more information, see the Wiki: http://wiki.debian.org/Multistrap
Mounting /dev and /proc for chroot configuration
/proc can be mounted inside the chroot, as above:
mount proc -t proc /proc
However, /dev should be mounted from outside the chroot, before running any "configscript.sh" in the
chroot:
cd /path/chroot/
sudo tar -xzf /path/multistrap.tgz
sudo mount /dev -o bind ./dev/
sudo chroot . ./configscript.sh || true
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
"multistrap" supports an option to explicitly set the default release to use with apt:
"aptdefaultrelease". This determines which release apt will use for the base system packages and is not
the same as pinning (which relates to the use of apt after installation). Multistrap sets the default-
release to the wildcard * unless a release is named in the "aptdefaultrelease" field. Any release
specified here must also be defined in a stanza referenced in the bootstrap list or apt will fail.
To install a specific version of a package from a newer release than the one specified as default,
"explicitsuite" must also be set to true if the package exists at any version in the default release.
Also, any packages upon which that package has a strict dependency (i.e. = rather than >=) must also be
explicitly added to the packages line in the stanza for the desired version, even though that package
does not need to be listed to get it from the default release. This is typical apt behaviour and is not a
bug in multistrap.
The combination of default release, explicit suite and apt preferences can quickly become complex and
bugs can be very hard to identify. "multistrap" always outputs the complete apt command line, so test
this command yourself (using the files written out by "multistrap") to see what is going on. Remember
that all dependency resolution and all the logic to determine which version of a specific package gets
installed in your "multistrap" chroot is entirely down to apt and all "multistrap" can do is pass files
and command line options to apt.
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 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 pakke i at fungere normalt).
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
Files which do not exist or which cannot be opened will be silently ignored. Check the results of the
parsing using the "--simulate" option to "multistrap". The preseeding files will be copied to a preseed
directory in /tmp inside the rootfs.
To use the preseeding, add a section to the configscript.sh, prior to any calls to dpkg --configure -a.
e.g. :
#!/bin/sh
set -e
export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
export LC_ALL=C LANGUAGE=C LANG=C
if [ -d /tmp/preseeds/ ]; then
for file in `ls -1 /tmp/preseeds/*`; do
debconf-set-selections $file
done
fi
dpkg --configure -a
Hooks
If a hook directory (hookdir=) is specified in the General section of the "multistrap" configuration
file, the hook scripts which are executable will be run from outside the multistrap directory at the
following stages:
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.
Completion scripts are executable scripts in the specified hook directory with a filename beginning with
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
perl v5.30.0 2020-03-22 MULTISTRAP(1)