Provided by: multistrap_2.2.11_all bug

Nome

       multistrap - bootstraps de múltiplos repositórios

Sinopse

        multistrap [-a ARQUITECTURA] [-d DIRECTÓRIO] -f FICHEIRO_CONFIGURAÇÃO
        multistrap [--simulate] -f FICHEIRO_CONFIGURAÇÃO
        multistrap -?|-h|--help|--version

Opções

       -?|-h|--help|--version - mostra o texto de ajuda e termina com sucesso.

       --dry-run - recolhe todas as definições de configuração e gera um sumário a descoberto.

       --simulate - o mesmo que --dry-run

       (As seguintes opções também podem ser definidas no ficheiro de configuração.)

       -a|--arch - arquitectura dos pacotes a colocar na multistrap.

       -d|--dir - directório onde o bootstrap irá ser instalado.

       -f|--file - ficheiro de configuração para multistrap [necessário]

       -s|--shortcut - versão curta de -f para ficheiros em localizações conhecidas.

       --tidy-up - remove dados da cache do apt, ficheiros de pacotes descarregados e a cache de
       pacotes do apt. O mesmo que cleanup=true.

       --no-auth - permite o uso de repositórios não autenticados. O mesmo que noauth=true

       --source-dir DIRECTÓRIO - move o conteúdo de var/cache/apt/archives/ de dentro da chroot
       para o directório externo especificado, depois adiciona os pacotes fonte Debian para cada
       binário usado. O mesmo que retainsources=DIRECTÓRIO, se o directório especificado não
       existir, não faz nada. Requer --tidy-up de modo a calcular a lista completa dos pacotes
       fonte, incluindo as dependências.

Descrição

       multistrap disponibiliza um método tipo debootstrap baseado em apt e estendido para
       disponibilizar suporte para múltiplos repositórios, usando um ficheiro de configuração
       para especificar os conjuntos relevantes, arquitectura, pacotes extra e o mirror a usar
       para cada bootstrap.

       O objectivo é criar um sistema de ficheiros bootstrap / raiz completo com todos os pacotes
       instalados e configurados, em vez de apenas o sistema base.

       Na maioria dos casos, os utilizadores precisam de criar um ficheiro de configuração para
       para cada utilização diferente do multistrap.

       Exemplo de configuração:

        [General]
        arch=armel
        directory=/opt/multistrap/
        # igual à opção --tidy-up se definida para true
        cleanup=true
        # igual à opção --no-auth se definida para true
        # pacotes chaveiro listados em cada bootstrap serão
        # na mesma instalados.
        noauth=false
        # extrai todos os arquivos descarregados (predefinição é true)
        unpack=true
        # se deve adicionar a /suite para especificar onde o apt
        # deve procura pacotes. A predefinição é false.
        explicitsuite=false
        # permite MultiArch para as arquitecturas especificadas
        # a predefinição é vazio
        # aptsources é uma lista de secções a usar
        # no /etc/apt/sources.list.d/multistrap.sources.list
        # do destino. A ordem não é importante
        aptsources=Debian
        # a opção bootstrap determina qual o repositório
        # é usado para calcular a lista de Prioridade: pacotes necessários.
        # e quais os pacotes vão para rootfs.
        # A ordem das secções não é importante.
        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)

       Especifica um pacote para estender o multistrap para incluir esse pacote e todas as
       dependências desse pacote.

       Especifica mais repositórios para o bootstrap ao adicionar novas secções. Os nomes das
       secções precisam de estar listados na opção geral do bootstrap para que os pacotes sejam
       incluídos no bootstrap.

       Especifica quais os repositórios que estarão disponíveis ao sistema final no arranque ao
       listar os nomes de secção na opção geral do aptsources, ex. para excluir algumas fontes
       internas ou quando se usa um mirror local quando se constrói o rootfs.

       Os nomes das secções são insensíveis a maiúsculas/minúsculas.

       Todas as dependências são resolvidas apenas pelo apt, usando todos os repositórios
       bootstrap, para usar apenas as dependências mais recentes e apropriadas. Note que o
       multistrap desliga a Install-Recommends portanto se o multistrap precisar de um pacote que
       é apenas uma dependência recomendada, o pacote recomendado precisa de ser especificado
       explicitamente na linha de pacotes. Veja "Explicit suite specification" para mais
       informação sobre obter pacotes específicos de suites específicas.

       'Architecture' e 'directory' podem ser sobrepostas na linha de comandos. Algumas das
       outras opções gerais também têm opções de linha de comandos.

Exemplos e documentação online

       "multistrap" suporta uma gama de permutações, veja a wiki e o site web emdebian para mais
       informação e exemplos de configuração:

       http://wiki.debian.org/Multistrap

       http://www.emdebian.org/multistrap/

       "multistrap" inclui um exemplo de ficheiro de configuração com uma lista completa de todas
       as opções do ficheiro de configuração suportadas.
       /usr/share/doc/multistrap/examples/full.conf

Atalhos

       Num modo semelhante ao "debootstrap", o "multistrap" suporta referir-se a ficheiros de
       configuração em localizações conhecidas através de atalhos. Quando se usa a opção
       "--shortcut". o "multistrap" irá procurar ficheiros em /usr/share/multistrap e depois em
       /etc/multistrap.d/, adicionando um sufixo '.conf' ao atalho especificado.

       Estes dois comandos são equivalentes:

        $ sudo multistrap -s sid
        $ sudo multistrap -f /usr/share/multistrap/sid.conf

       Note que o "multistrap" ainda irá falhar se o próprio ficheiro de configuração não definir
       o directório da arquitectura.

Repositórios

       "aptsources" lista as secções que devem ser usadas para criar as
       /etc/apt/sources.list.d/multistrap.list sources do apt no sistema final. Nem todas as
       "aptsources" têm de aparecer na secção "bootstrap" se você tiver algumas sources internas
       ou locais que não estão acessíveis ao sistema de ficheiros raiz instalado.

       "bootstrap" lista as secções que serão usadas para criar o próprio multistrap. Apenas os
       pacotes listados em "bootstrap" serão descarregados e desempacotados pelo multistrap.

       Certifica que "bootstrap" lista todas as secções que precisa para o apt ser capaz de
       encontrar todos os pacotes a serem desempacotados para o multistrap.

       (Versões antigas do multistrap suportaram a mesma opção sob o nome "debootstrap" - esta
       ortografia ainda é suportada mas os novos ficheiros de configuração deverão ser antes
       "bootstrap".

Definições gerais:

       'arch' pode ser sobreposto na linha de comandos usando a opção "--arch".

       'directory' especifica o directório de nível de topo onde o bootstrap irá ser criado - não
       é empacotado em um .tgz depois de completo.

       'bootstrap' lista as Secções que serão usadas para especificar os pacotes que serão
       descarregados (e opcionalmente desempacotados) para o bootstrap.

       'aptsources' lista as Secções que serão usadas para especificar as fontes do apt no
       sistema final, ex. se você precisar de usar um repositório local para gerar a rootfs que
       não estará disponível ao dispositivo em tempo de execução, lista essa secção em
       "bootstrap" mas não em "aptsources".

       Se deseja que um pacote fique na rootfs, ele tem de estar especificado na lista
       "bootstrap" sob General.

       A ordem dos nomes das secções em cada lista, não é importante.

       Se "markauto" estiver definido para verdadeiro, o "multistrap" irá pedir ao apt para
       marcar todos os pacotes especificados na lista "packages" combinada como instalados
       manualmente e todas as dependências não listadas explicitamente como instaladas
       automaticamente na base de dados de estado extenso do APT. "markauto" pode ser usado
       independentemente de "unpack".

       Tal como no debootstrap, o multistrap irá continuar após ocorrerem erros, desde que o
       ficheiro de configuração possa ser analisado correctamente.

       O multistrap também implementa o suporte a machine:variant usado originalmente em Emdebian
       Crush, apesar de ser uma implementação diferente. Usando o suporte de configuração em
       cascata, podem ser suportadas combinações particulares de machine:variant através de
       alterações simples na linha de comandos.

       Definir "tarballname" para verdadeiro também empacota o sistema de ficheiros final num
       tarball.

       Note que o multistrap ignora quaisquer opções não reconhecidas no ficheiro de configuração
       - isto permite comportamento de compatibilidade com versões anteriores assim como o
       sobrecarregamento dos ficheiros de configuração do multistrap para suportar outras
       ferramentas (como o pbuilder). Use a opção "--simulate" para ver as definições de
       configuração combinadas.

       No entanto, se o próprio ficheiro de configuração não puder ser analisado, o multistrap
       irá abortar. Verifique que o ficheiro de configuração tem uma chave e um valor para cada
       linha que não seja um comentário. Os valores têm de estar todos na mesma linha que a
       respectiva chave.

Definições da Secção

        [Debian]
        packages=
        source=http://ftp.uk.debian.org/debian
        keyring=debian-archive-keyring
        suite=jessie

       O nome de secção (em [] chavetas) precisa de ser único para este ficheiro de configuração
       e quaisquer ficheiros de configuração que este ficheiro inclua. Os nomes de secções são
       insensíveis a maiúsculas/minúsculas (todas as comparações acontecem após conversão para
       minúsculas).

       'packages' é a lista de pacotes a serem adicionados quando esta Secção é listada no
       "bootstrap" - todos os nomes de pacotes têm de ser listados numa linha única ou a análise
       ao ficheiro irá falhar. Uma alternativa é definir a sua lista de pacotes como múltiplos
       grupos com os pacotes separados numa base de função / dependência, ex, base, Xorg, rede,
       etc. e listar cada grupo sob '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

       Como um caso especial, o "multistrap" também suporta chaves de pacotes múltiplos por
       secção, uma linha para cada. As outras chaves não podem ser repetidas desta maneira.

        [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' é a fonte do apt a usar para esta Secção. Para usar uma fonte local na mesma
       máquina, certifique-se de usar "copy://" e não "file://", para que o apt saiba que deve
       copiar os pacotes para a rootfs em vez de assumir que pode tentar descarregá-los mais
       tarde - porque esse "mais tarde" nunca vai acontecer.

       'keyring' lista o pacote que contém a chave usada pela fonte listada nesta secção. Se não
       for especificado um chaveiro, a opção "noauth" tem de ser definida para true. Veja
       Segurança do Apt.

       'suite' é a suite a usar de esta fonte. Note que isto deve de ser a suite, e não o nome de
       código.

       Suites change from time to time: (oldstable, stable, testing, sid)  The codename (squeeze,
       wheezy, jessie, sid) does not change.

Segurança do Apt

       Para usar repositórios apt autenticados, o multistrap precisa de ser capaz de instalar um
       pacote chaveiro apropriado a partir das fontes apt existentes fora do ambiente multistrap
       para o sistema de destino. Infelizmente, os pacotes chaveiro não podem ser descarregados a
       partir dos repositórios especificados na configuração do multistrap - isto porque o "apt"
       precisa que o chaveiro seja actualizado antes de usar repositórios anteriormente
       desconhecidos.

       Se existirem pacotes relevantes, especifique-os na opção 'keyring' para cada repositório.
       O multistrap irá então verificar se o apt já instalou este pacote para que o repositório
       possa ser autenticado antes que quaisquer pacotes sejam descarregados dele.

       Note que todos os repositórios a serem usados com multistrap têm que ser autenticados ou o
       apt irá falhar. De modo semelhante, secure apt só pode ser desactivado para todos os
       repositórios (usando a opção de linha de comandos --no-auth ou definindo a opção geral
       noauth no ficheiro de configuração), mesmo que apenas um repositório não tenha disponível
       um chaveiro apropriado.

       O(s) pacote(s) chaveiro (keyring) serão também instalados dentro do ambiente multistrap
       para coincidir com as fontes apt instaladas para o multistrap.

Estado

       O multistrap não tem estado - se o directório existir, irá simplesmente prosseguir como
       normalmente e o apt irá tentar prosseguir de onde ficou.

Configuração do Sistema de Ficheiros Raiz

       o multistrap desempacota os pacotes descarregados mas não serão tentados outros estágios
       da configuração do sistema. Os exemplos incluem:

        /etc/inittab
        /etc/fstab
        /etc/hosts
        /etc/securetty
        /etc/modules
        /etc/hostname
        /etc/network/interfaces
        /etc/init.d
        /etc/dhcp3

       Quaisquer nós de dispositivo de dispositivo específico irá também precisar de ser criado
       usando MAKEDEV ou "device-table.pl" - um script de ajuda que pode contornar alguns dos
       problemas com o MAKEDEV. device-table.pl requer um ficheiro de tabela de dispositivos na
       linha daquele no pacote fonte mtd-utils. Veja
       /usr/share/doc/multistrap/examples/device_table.txt

       Após o multistrap ter criado com sucesso a disposição básica de ficheiros e oesquema de
       directórios, são necessários outros scripts específicos do dispositivo antes que o sistema
       de ficheiros possa ser empacotado e instalado no dispositivo de destino.

       Após instalados, os próprios pacotes precisam de ser configurados usando os scripts do
       responsável do pacote e "dpkg --configure -a", a menos que isto seja um multistrap nativo.

       Para que o "dpkg" funcione, /proc e /sysfs precisam de estar montados (ou serem
       montáveis), também é recomendado /dev/pts.

       Veja também: http://wiki.debian.org/Multistrap

Ambiente

       Para configurar os pacotes desempacotados (seja em modo nativo ou cruzado), são
       necessárias certas variáveis de ambiente:

       O debconf precisa que lho digam para aceitar que a interacção com o utilizador não é
       desejada:

        DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true

       O Perl precisa que lho digam para aceitar que não há locales disponíveis dentro da chroot
       e não se queixar:

        LC_ALL=C LANGUAGE=C LANG=C

       Depois, o dpkg pode configurar os pacotes:

       método de chroot (PATH = directório de topo da chroot):

        DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true \
        LC_ALL=C LANGUAGE=C LANG=C chroot /PATH/ dpkg --configure -a

       numa shell de login:

        # export DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true
        # export LC_ALL=C LANGUAGE=C LANG=C
        # dpkg --configure -a

       (Como em cima, o dpkg precisa de /proc e /sysfs montados primeiro.)

Modo nativo - multistrap

       o multistrap não foi destinado a suporte nativo, foi desenvolvido para suporte a
       compilação de outras arquitecturas. De modo a se usar múltiplos repositórios, o multistrap
       apenas desempacota os pacotes seleccionados pelo apt.

       Em modo nativo, é provável serem necessárias várias operações post-multistrap que o
       debootstrap faria por si:

        1. copiar /etc/hosts para a chroot
        2. limpar o ambiente para apagar as variáveis LANGUAGE, LC_ALL e LANG
           para silenciar avisos sem sentido do perl que escondem outros erros

       (Uma alternativa a apagar as variáveis de localização é adicionar locales ao seu ficheiro
       de configuração multistrap na opção 'packages').

       Um multistrap nativo pode ser usado directamente com a chroot, de modo a que "multistrap"
       corra "dpkg --configure -a" no final do processo multistrap, a menos que a opção
       ignorenativearch seja regulada para true na secção General do ficheiro de configuração.

Daemons em chroots

       Dependendo de qual sistema você usa para disponibilizar os pacotes para o "multistrap", as
       chroots nativas geralmente não devem permitir que daemons arranquem dentro da chroot. Use
       o /usr/share/multistrap/chroot.sh como o seu "setupscript" ou inclua esse script no seu
       próprio script de configuração.

        setupscript=/usr/share/multistrap/chroot.sh

       chroot.sh coopera com sistemas que usam sysvinit e upstart.

       Veja também

        http://people.debian.org/~hmh/invokerc.d-policyrc.d-specification.txt

Configuração em cascata

       Para suportar múltiplas variantes duma configuração básica (comum), "multistrap" permite
       ficheiros de configuração para incluir outros ficheiros de configuração (mais gerais).
       Isto é, o ficheiro de configuração mais detalhado / específico é especificado na linha de
       comandos e esse ficheiro inclui outro ficheiro que é partilhado por outras configurações.

       Ficheiro base:

        /usr/share/multistrap/crosschroot.conf

       Variações:

        /usr/share/multistrap/armel.conf

       Especificar apenas o ficheiro armel.conf irá obter o resto das definições de
       crosschroot.conf para que as alterações comuns só precisem ser feitas num único ficheiro.

       É fortemente recomendado que quaisquer modificações nos ficheiros de configuração
       envolvidas em qualquer cascata particular sejam testadas usando a opção "--simulate" do
       multistrap o que irá gerar um sumário das opções que foram definidas após a cascata estar
       completa. Note que o multistrap não o avisa se um ficheiro de configuração conter uma
       opção não reconhecida (para compatibilidade futura com configurações backport), portanto
       um simples erro de escrita pode resultar numa opção não definida.

Suporte a Machine:variant

       As variáveis packages-conf antigas de emsandbox podem ser convertidas em variáveis de
       configuração "multistrap". O suporte a machine:variant em "multistrap" concentra-se nos
       scripts config.sh e setup.sh

       Nota: o suporte a machine:variant é provável que seja substituido pela funcionalidade hook
       descrita em baixo.

       Após o "multistrap" ter desempacotado os pacotes descarregados, pode ser chamado o
       "setup.sh", passando a localização e arquitectura do sistema de ficheiros raiz, para que
       possam ter lugar outras afinações. Neste estágio, quaisquer operações dentro duma rootfs
       de arquitectura alienígena não devem tentar executar quaisquer binários dentro da rootfs.
       Como estágio final do processo multistrap, o "config.sh" é copiado para o directório raiz
       da rootfs.

       Uma vantagem de usar suporte a machine:variant é que o sistema de ficheiros raiz completo
       pode ser gerido por uma única chamada ao multistrap - isto é útil quando se constrói
       sistemas de ficheiros raiz no espaço do utilizador.

       Para activar suporte a machine:variant, especifique o caminho para os scripts a serem
       chamados no ficheiro de configuração de variantes (secção General):

        [General]
        include=/caminho/para/general.conf
        setupscript=/caminho/para/setup.sh
        configscript=/caminho/para/config.sh

       Assegure que ambos setupscript e configscript são executáveis ou o "multistrap" irá
       ignorar os scripts.

       Exemplo de 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

        Para mais informações, veja a Wiki: http://wiki.debian.org/Multistrap

       Montar /dev e /proc para configuração da chroot
        /proc pode ser montado dentro da chroot, como em cima:

         mount proc -t proc /proc

        No entanto, /dev deve ser montado de fora da chroot, antes de correr qualquer
        "configscript.sh" na chroot.

         cd /path/chroot/
         sudo tar -xzf /path/multistrap.tgz
         sudo mount /dev -o bind ./dev/
         sudo chroot . ./configscript.sh || true

Restringindo a selecção de pacotes

       "multistrap" inclui os pacotes necessários (Required) por predefinição, a lista actual de
       pacotes na sua própria máquina pode ser vista usando:

        grep-available  -FPriority 'required' -sPackage

       (A lista real é calculada a partir dos ficheiros Packages descarregados e pode diferir do
       resultado de "grep-available".)

       Se a opção OmitRequired for definida para true, estes pacotes não serão adicionados -
       embora útil, esta opção pode levar facilmente a um rootfs inútil. Apenas os pacotes
       especificados manualmente nos ficheiros de configuração serão usados nos cálculos - as
       dependências desses pacotes serão adicionadas mas mais nenhuns.

Adicionar pacotes de Priority: important

       O "multistrap" pode imitar o "debootstrap" ao adicionar automaticamente todos os pacotes
       de todas as secções onde o ficheiro Packages descarregado liste o pacote como Priority:
       important. A predefinição é não adicionar tais pacotes a menos que sejam incluídos
       individualmente numa opção "packages=" numa secção especificada nas opções gerais do
       "bootstrap". Para adicionar tais pacotes, regule a opção addimportant para verdadeiro na
       secção geral.

        addimportant=true

       Priority: important apenas pode operar para todas as secções listadas na opção
       "bootstrap". Isto pode causar alguma confusão quando se misturam suites.

       Não é possível activar addimportant e omitrequired na mesma configuração. O "multistrap"
       irá terminar com erro código 7 se qualquer configuração resultar em que ambos addimportant
       e omitrequired seja regulados para verdadeiro. (Isto inclui os efeitos de incluir outros
       ficheiros de configuração.)

Comportamento das recomendações

       O comportamento predefinido da Debian após o lançamento do Lenny era considerar os pacotes
       recomendados como pacotes extra a serem instalados quando qualquer um pacote era
       seleccionado. Os pacotes recomendados são aqueles que o responsável considera que deverão
       estar presentes na "maioria" das instalações desse pacote e permite as Recomendações
       significa permitir também as Recomendações de pacotes recomendados e por aí fora.

       A predefinição do multistrap é DESLIGAR as recomendações.

       Define a opção allowrecommends para true na secção General para usar o comportamento
       típico da Debian.

Lançamento predefinido

       "multistrap" suporta uma opção para definir explicitamente o lançamento predefinido a usar
       com o apt: "aptdefaultrelease". Isto determina qual o lançamento o apt irá usar para os
       pacotes do sistema base e não é o mesmo que fazer 'pinning' (o que se relaciona com o uso
       do apt após a instalação). Multistrap define o lançamento predefinido para a wildcard * a
       menos que um lançamento seja nomeado no capo "aptdefaultrelease". Qualquer lançamento
       especificado aqui deve também ser definido na estrofe referenciada na lista bootstrap ou o
       apt irá falhar.

       Para instalar uma versão específica de um pacote de um lançamento mais recente que aquele
       especificado como predefinido, "explicitsuite" deve também ser definido para verdadeiro se
       o pacote existir em qualquer versão no lançamento predefinido. Também, quaisquer pacotes
       do qual esse pacote tenha uma dependência estrita (isto é = em vez de >=) devem também ser
       adicionados à linha packages na estrofe para a versão desejada, mesmo que esses pacotes
       não precisem de ser listados para serem obtidos do lançamento predefinido. Isto é
       comportamento típico do apt e não é um bug do multistrap.

       A combinação do lançamento predefinido, suite explícita e preferências do apt pode
       facilmente tornar-se complexa e os bugs podem ser difíceis de identificar. "multistrap"
       escreve sempre a linha de comandos do apt completa, portante teste você mesmo este comando
       (usando os ficheiros escritos pelo "multistrap") para ver o que se passa. Lembre-se que
       todas as resoluções de dependências e toda a lógica para determinar qual a versão de um
       pacote especifico vai ser instalada na sua chroot "multistrap" é feita inteiramente pelo
       apt e todo o que o "multistrap" pode fazer é passar ficheiros e opções de linha de
       comandos ao apt.

       Veja também: Preferências do Apt

Especificação de suite específica

       Por vezes, o apt precisa que lhe digam para obter um pacote particular de uma suite
       particular, ignorando uma versão mais recente numa outra suite no mesmo conjunto de
       fontes.

       "multistrap" pode operar com ou sem a opção de suite explícita, a predefinição é deixar o
       apt usar a versão mais recente da colecção de fontes bootstrap especificadas.

       A especificação de suite explícita não tem efeito no sistema final instalado - se o seu
       aptsources incluir um repositório que por sua vez inclui uma versão mais recente dos
       pacotes especificados explicitamente, o próximo "apt-get upgrade" no dispositivo irá
       trazer a versão mais recente.

       Também, quando se especifica pacotes a obter de uma suite específica, o apt irá também
       tentar assegurar que as dependências desse pacote venham também da mesma suite e isso pode
       fazer com que o apt seja incapaz de resolver o conjunto completo de dependências. Nesta
       situação, ser explícito acerca de uma selecção de pacote pode requerer ser explícito
       acerca de algumas (não necessariamente de todas) das dependências desse pacote também.

       Quando usar explicitsuite, tome o cuidado de usar stable-proposed-updates ou outras
       localizações temporárias - se o pacote migrar para outra suite e for removido da suite
       temporária (como com *-proposed-updates), o multistrap não será capaz de encontrar o
       pacote.

       O manuseamento de suites explícitas pode ser muito difícil de se conseguir correctamente.
       Em geral, é melhor criar uma pequena chroot de bootstrap da sua arquitectura nativa,
       depois fazer chroot para ela, adicionar as fontes do apt relevantes e trabalhar
       exactamente quais comandos são necessários para obter a mistura de pacotes correcta. Evite
       especificar versões especificas para despistar problemas, trabalhe apenas com suites. Aqui
       pode ser útil fazer 'pinning' às preferências do apt, veja as preferências do Apt.

Preferências do Apt

       Se um ficheiro apropriado estiver listado na opção aptpreferences da secção General do
       ficheiro de configuração, este ficheiro será copiado para o directório de preferências do
       apt do bootstrap antes do apt ser usado pela primeira vez.

       Quando um ficheiro de preferências de apt é disponibilizado, o comportamento
       "Lançamento-Predefinido" do "multistrap" é desactivado.

       Como com quaisquer outros ficheiros e scripts externos, o conteúdo do ficheiro de
       preferências do apt está além do objectivo deste manual. O "multistrap" não tenta
       verificar o ficheiro fornecido para além de assegurar que este possa ser lido.

Omitir listagens deb-src

       Alguns ambientes multistrap não precisam de acesso às fontes Debian dos pacotes que são
       instalados, tipicamente isto é necessário quando se prepara uma chroot de construção (ou
       construção para outra plataforma) usando o multistrap.

       Para desligar esta fonte adicional (e poupar em ambos tempo de download e tamanho da apt-
       cache), use o campo omitdebsrc em cada Secção.

        [Baked]
        packages=
        source=http://www.emdebian.org/baked
        keyring=emdebian-archive-keyring
        suite=testing
        omitdebsrc=true

       omitdebsrc é necessário quando se usa pacotes de debian-ports onde os pacotes não têm
       fontes, excepto "unreleased".

fakeroot

       Os bootstraps de arquitectura diferente podem operar sob "fakeroot" ("multistrap" está
       desenhado para fazer o máximo que possa dentro de uma chamada única para facilitar isto)
       mas o estágio de configuração que normalmente acontece com um bootstrap de arquitectura
       nativa requer "chroot" e o próprio "chroot" não irá operar sob "fakeroot".

       Portanto, se o "multistrap" detectar que "fakeroot" está em uso, a configuração de modo
       nativo é saltada com um aviso de lembrança.

       O mesmo problema aplica-se ao "apt-get install" e por isso a instalação do pacote chaveiro
       no sistema anfitrião é também saltado se for detectado o fakeroot.

Manusear pacotes problemáticos

       Por vezes, uma pacote particular irá falhar até ao desempacotar apropriadamente se outros
       pacotes ainda não foram desempacotados. Isto pode acontecer se as diversões do dpkg não
       estiverem configuradas correctamente ou se o pacote tem uma pré-dependência dum executável
       de outro pacote.

       Multistrap oferece dois modos de lidar com estes problemas. Um pacote pode ser listado
       como "reinstall" ou como "additional". Cada secção no ficheiro de configuração do
       "multistrap" pode ter uma única listagem "reinstall" ou "additional" ou ambas.

       Reinstall significa que o pacote irá ser descarregado e desempacotado como normal -
       juntamente com todos os outros pacotes, mas será depois reinstalado no fim ao executar o
       script "preinst" do responsável do pacote com o argumento "upgrade". O "dpkg" irá então
       continuar o resto da configuração desse pacote.

       Additional adiciona uma segunda volta de "apt-get install" ao processo do multistrap -
       após o desempacotar inicial. O pacote adicional irá então ser descarregado e
       desempacotado. Se executado nativamente, o pacote adicional é descarregado, desempacotado
       e configurado após todos os pacotes restantes terem sido descarregados, desempacotados e
       configurados.

       Nem "reinstall" nem "additional" devem ser vistos como mais do que apenas meios de
       contorno e devem ser preenchidos bugs de wishlist em Debian contra os pacotes que requerem
       o uso destes mecanismos (ou dos pacotes que iram prevenir um determinado pacote de operar
       normalmente).

Pré-semear Debconf

       Adicionar uma semente debconf pode ajudar a configurar pacotes para uma definição
       particular em vez da predefinição do pacote quando se correr a configuração de modo não
       interactivo. Veja http://www.debian-administration.org/articles/394 para informação sobre
       como criar ficheiros semente.

       Podem ser especificados múltiplos ficheiros semente usando o campo debconfseed na secção
       [General], separados por espaços.

        debconfseed=seed1 seed2

       Os ficheiros que não existem ou não podem ser abertos serão ignorados em silêncio.
       Verifique os resultados da análise usando a opção "--simulate" para o "multistrap". Os
       ficheiros precedentes serão copiados para um directório precedente em /tmp dentro da
       rootfs.

       Para usar o precedente, adicione uma secção ao configscript.sh, antes de quaisquer
       chamadas a dpkg --configure -a. ex. :

        #!/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

       Se um directório (hookdir=) hook for especificado na secção General do ficheiro de
       configuração do "multistrap", os scripts hook que são executáveis serão executados a
       partir de fora do directório multistrap nos seguintes estágios:

       hooks de download
        Executados antes do desempacotamento ser iniciado, imediatamente após os pacotes terem
        sido descarregados. Os hooks de download são scripts executáveis no directório hook
        especificado com o nome de ficheiro a começar com download.

       hooks nativos
        Os hooks nativos são executados apenas em modo nativo, imediatamente antes de arrancar a
        configuração dos pacotes descarregados e de novo após a conclusão da configuração de
        pacotes. Os hooks nativos serão chamados de o caminho absoluto e o estado de progresso
        actual, inicio ou fim.

        Scripts nativos são scripts executáveis no directório de hook especificado com o nome de
        ficheiro a começar com native.

       hooks de acabamento
        Executado imediatamente antes do tarball ser criado ou o "multistrap" termina se não
        estiver configurado para criar um tarball.

        Scripts de acabamento são scripts executáveis no directório de hook especificado com o
        nome de ficheiro a começar com completion.

       Aos hooks é passado o caminho absoluto ao directório que será o directório de nível de
       topo do sistema chroot ou multistrap. Os hooks que não podem ser resolvidos usando
       realpath ou que não sejam executáveis serão ignorados.

       Todos os hooks de um tipo são ordenados por ordem alfabética antes de serem executados.

       Note que o "multistrap" não desfaz os efeitos dos hooks em caso de erros. No entanto, o
       "multistrap" irá reportar os erros acumulados como avisos. Se um hook termina com
       não-zero, esse valor é convertido para um número positivo e adicionado à contagem total de
       avisos, e reportado no final da operação.

Saída

       O "multistrap" pode produzir imensas mensagens de saída - as mensagens informativas
       aparecem no STDOUT, os erros e avisos no STDERR. As chamadas a "apt" e "dpkg" respeitam o
       mesmo padrão, portanto é simples recortar a saída combinado do "multistrap" para apenas os
       erros, se desejado.

       O "multistrap" acumula estados de erros de processos não fatais dentro da operação e
       reporta estes como avisos no STDERR assim como termina com o erro da contagem acumulada.
       Isto inclui os hooks que reportem valores de saída a não-zero.

Bugs

       Como o "multistrap" está a ficar mais complexo, os bugs irão aparecer no pacote. Por favor
       reporte todos os bugs para o BTS do Debian usando a ferramenta "reportbug" e por favor
       anexe todos os ficheiros de configuração. Se a sua configuração precisa de aceder a
       repositórios do apt locais ou privados, por favor verifique a sua configuração com a
       versão mais recente do "multistrap" em Debian usando a opção "--simulate" e inclua esse
       relatório no seu relatório de bug.

       O resultado da opção "--simulate" é regularmente expandido para ajudar os utilizadores a
       depurar problemas nos ficheiros de configuração.

       Por favor verifique também (e actualize) o wiki do Multistrap em
       http://wiki.debian.org/Multistrap e o conteúdo da página web do Multistrap em
       http://www.emdebian.org/multistrap/ antes de preencher bugs. Várias pessoas na lista de
       mail debian-embedded@lists.debian.org e no canal de IRC #emdebian a irc.oftc.net também
       podem ajudar se o seu ficheiro de configuração não for analisado correctamente. Você irá
       precisar de colocar o resultado da opção "--simulate" num site web de colagem binária e
       colocar o URL na sua mensagem.

Suporte a MultiArch

       O suporte a Multiarch é experimental - por favor reporte problemas e submeta bugs com os
       detalhes completo da sua configuração, o ficheiro completo de configuração do multistrap e
       os erros reportados.

       O "multistrap" sobrepõe o suporte de multiarch existente do sistema externo para quem
       sistema com capacidades de MultiArch possa ainda criar uma chroot não-MultiArch  a partir
       de repositórios que não suportem todas as arquitecturas suportadas pelo dpkg externo.

       Se multiarch estiver activa dentro da chroot do multistrap, o "multistrap" escreve a lista
       em /var/lib/dpkg/arch dentro da chroot.

       Para múltiplas arquitecturas, especifique a opção uma vez e use uma lista separada por
       espaços para a lista de arquitecturas. Certifique-se de incluir a que irá ser a
       arquitectura anfitriã da chroot.

       Veja também http://wiki.debian.org/Multiarch/

        [General]
        ...
        multiarch=i386 armel armhf

       Cada secção irá instalar pacotes da arquitectura base a menos que a opção "Architecture"
       seja especificada para secções particulares.

        [Foreign]
        packages=libgcc1 libc6
        architecture=armel
        source=http://ftp.uk.debian.org/debian
        keyring=debian-archive-keyring
        suite=sid

       Na saída do "--simulate", a(s) arquitectura(s) especificada(s) na opção MultiArch serão
       listadas sob a listagem "Arquitecturas estrangeiras". Os pacotes para uma arquitectura
       especifica serão listados como o nome do pacote seguido por "dois pontos" e seguido pela
       arquitectura.

        libgcc1:armel libc6:armel