Outros idiomas English ; français ; português brasileiro ; |
Sinopse: Instruções para construir as ISOs oficiais do Mageia Live. Isto é para uso do grupo de construtores de ISO. |
Background
A ferramenta usada para criar os ISOs do Mageia Live é o draklive2. Ele é empacotado e está disponível para ser instalado no Mageia 7 e acima. A documentação do draklive2 descreve como um usuário pode construir uma ISO live personalizada. Estas notas descrevem como os ISOs oficiais do Mageia Live são construídos. Consulte a documentação completa do draklive2 para mais detalhes.
draklive2 constrói as ISOs em quatro passos
1. Root
Isso usa o instalador clássico para instalar um sistema Mageia padrão em um sistema de arquivos raiz fictício e, em seguida, executa quaisquer "ajustes" pós-instalação especificados pelo usuário. A única diferença significativa para uma instalação padrão é que ele instala suporte para todo o hardware (em vez de detectar o que é necessário para a máquina de destino) e (opcionalmente) instala suporte para todos os locais.
2. Boot
Isso cria o initrd e instala o bootloader no sistema de arquivos fictício. Ele também prepara os arquivos adicionais necessários para inicializar uma ISO híbrida (ou seja, inicializar de um DVD real ou de um pendrive USB).
3. Loop
Isso compacta o sistema de arquivos fictício em uma imagem do sistema de arquivos squashfs. Isso é armazenado na ISO final no arquivo loopbacks/distrib.sqfs. Quando você inicializa um sistema Live, isso é montado (somente leitura) e mesclado com um disco RAM usando o sistema de arquivos overlayfs. Essa mesclagem com um disco RAM é o que permite que as alterações sejam feitas em um sistema Live em execução. Em um pendrive, se o usuário criar uma partição extra no espaço restante, formatada com um sistema de arquivos adequado (por exemplo, ext4) e rotulada como 'mgalive-persist', essa partição será usada em vez de um disco RAM, permitindo que as alterações sejam persistentes.
4. Master
Isso cria a imagem ISO final a partir dos arquivos criados nas etapas de boot e loop.
A composição da ISO Live é especificada por dois arquivos de configuração
1. Configurações
Especificado por meio da opção de linha de comando --settings (o padrão é ./config/settings.cfg). Este é um arquivo de texto de variável de shell simples.
Contém as configurações mais básicas: DE, arquitetura, região(ões), caminho para o repositório, caminho para o diretório de compilação, etc. A maioria pode ser substituída pela opção de linha de comando --define, o que economiza a edição do arquivo ao gerar os diferentes sabores do Live ISO.
2. Configuração
Especificado por meio da opção de linha de comando --config (o padrão é ./config/build.cfg). Isso usa a sintaxe perl.
Contém uma especificação mais detalhada da composição do ISO Live, incluindo seleção de pacotes e todos os "ajustes" mencionados acima.
Quaisquer outros arquivos usados para criar os ISOs Live serão referenciados em um dos arquivos acima.
Construindo localmente
Embora o draklive2 possa ser configurado para usar um repositório remoto, se você for fazer isso mais de uma vez, é aconselhável criar um espelho local. Eu faço assim:
export MIRROR=rsync://rsync.mirrorservice.org/mageia.org/pub/mageia
export LOCAL_REPO=<caminho para a partição do disco grande>/mageia
export RELEASE=cauldron
rsync -avuH --delete $MIRROR/distrib/$RELEASE/i586 $LOCAL_REPO/distrib/$RELEASE/
rsync -avuH --delete $MIRROR/distrib/$RELEASE/x86_64 $LOCAL_REPO/distrib/$RELEASE/
Esteja avisado de que eles ocupam uma quantidade considerável de espaço em disco – no momento da escrita (antes do Mageia 7) era 71 GB para cauldron/i586 e 73 GB para cauldron/x86_64 e cresce a cada lançamento. Você pode economizar algum espaço adicionando
--exclude="media/debug" --exclude="media/*/updates_testing" --exclude="media/*/backports_testing"
aos comandos rsync.
Nota: Se quiser construir apenas a arquitetura i586, não há necessidade de clonar o repositório x86_64. No entanto, para dar suporte a máquinas de modo misto (por exemplo, CPU de 64 bits com BIOS de 32 bits), você precisa clonar ambos os repositórios de arquitetura para construir um ISO x86_64 ao vivo. |
Agora siga os seguintes passos:
1. Instale o pacote drakiso e suas dependências
Alternativamente, se quiser fazer alguma alteração na ferramenta draklive2 em si, você pode obter o código-fonte em
git clone git://git.mageia.org/software/build-system/drakiso/
e então nas instruções subsequentes substitua o comando draklive2
por perl -I../drakiso/lib ../drakiso/draklive2
(isso pressupõe que você verifique o drakiso no mesmo diretório que o draklive-config).
2. Clone o repositório draklive-config e altere o diretório para a cópia retirada:
git clone git://git.mageia.org/software/build-system/draklive-config && cd draklive-config
3. Em draklive-config, modifique ./config/settings.cfg to:
- alterar o caminho do repositório, por exemplo
repository=$LOCAL_REPO/distrib/$RELEASE |
- alterar o número da versão, por exemplo.
version=7-beta1 |
- altere workdir para algum lugar adequado no seu disco local (atualmente requer 12-13 GB por versão Live)
4. No draklive-config, extraia os arquivos do bootloader do repositório:
./update_bootloader_files.sh
5. No draklive-config, execute todos os quatro passos do draklive2:
draklive2 --all --define desktop=$DESKTOP --define arch=$ARCH
onde $DESKTOP pode ser um desses
- GNOME
- Plasma
- Xfce
e $ARCH pode ser um desses
- i586
- x86_64
Se você deseja apenas construir o DE/arch padrão especificado por ./config/settings.cfg, use
draklive2 --all
Ao reconstruir, você apenas repete o passo 5 (e o passo 4 se você atualizou seu espelho local). Você pode começar do zero adicionando a opção --clean. Alternativamente, você pode apenas executar novamente alguns dos passos substituindo --all por um ou mais de
- --root
- --boot
- --loop
- --master
Isso é útil ao testar correções de bugs – você pode alterar arquivos individuais no sistema de arquivos fictício e então apenas executar novamente os passos --loop e --master. Os passos serão executados na ordem correta, independentemente da ordem em que você os escrever.
Nota: draklive2 usará o comando sudo para executar quaisquer ações que exijam privilégios de root. Se você não deseja instalar/usar sudo, você pode executar draklive2 como root. |
Nota: Como alternativa para alterar os caminhos nos arquivos de configuração, você pode criar soft links no seu sistema de arquivos local para imitar os caminhos usados no servidor Mageia. Isso facilita as coisas quando você quer fazer commit de outras alterações no repositório git. |
Construindo no servidor do Mageia
Você precisará de um administrador de sistema para criar uma conta de login no servidor de compilação (atualmente 'rabbit') e adicioná-lo aos grupos mga-users, mga-packagers e mga-iso_makers. Você também precisará ter configurado o ssh conforme descrito em https://wiki.mageia.org/en/Packagers_ssh
Você se conecta ao servidor via ssh, por exemplo.
ssh meu_id_no_mageia@rabbit.mageia.org
Isso lhe dará um prompt de comando no servidor.
Para criar um conjunto completo de ISOs ao vivo, siga os seguintes passos:
- Clone o repositório draklive-config e faça cd na cópia retirada:
git clone git://git.mageia.org/software/build-system/draklive-config && cd draklive-config
- Execute o script de construção:
./build_all.sh
As ISOs são construídas em um disco RAM (/home/draklive/var_data) e então copiadas para o diretório rsync (/home/bcd//home/bcd/public_html/isos/trial-builds/) de onde você pode baixá-los para sua máquina local usando sua ferramenta rsync preferida (por exemplo, mageiasync). Como não há espaço suficiente no disco RAM para todas as quatro compilações, build_all.sh as exclui do disco RAM depois que elas são copiadas para o diretório rsync
Você também pode criar ISOs individuais usando o script build_one.sh.
Como o sistema de arquivos fictício tem as mesmas permissões de acesso a arquivos que um sistema real, você tem acesso limitado a ele. Isso dificulta a depuração de problemas no servidor do Mageia, pois os logs de instalação são armazenados em /root/drakx no sistema de arquivos fictício e só podem ser lidos pelo root. Eu geralmente depuro problemas compilando localmente, mas se os problemas ocorrerem apenas no servidor do Mageia, adiciono alguns comandos na seção postInstall em ./config/build.cfg para tornar os logs legíveis. Lembre-se apenas de desfazer isso antes de liberar as ISOs!
O repositório local no servidor de build está em /home/bcd/build_bcd/pieces. Ele é sincronizado manualmente com o repositório master por:
Este repositório também é usado para construir as ISOs clássicas, então coordene isso com os outros construtores de ISO. É vital para todas as construções de ISO que o repositório local não mude durante o processo de construção.