GoboLinux DownloadsDocumentaçãoComunidadeReceitasPacotesScreenshots


tradutor: Lucas Correia Villa-Real

Guia Rápido de Porte do GoboLinux

Hisham Muhammad, 19 de novembro de 2003.

Atualmente, o GoboLinux está disponível para o x86 apenas. Atualmente ele é específico para a arquitetura i686, apesar de existir um porte incompleto (a palavra mais legal seria "de domínio específico") para i386. Você deseja ser o primeiro a ter o GoboLinux rodando em uma outra arquitetura? Eu acredito que as coisas seriam mais fáceis se você seguisse o seguinte "plano de ataque". Vamos pegar a arquitetura PowerPC como um exemplo.

  1. Então, pegue uma distribuição Linux PPC, e instale o mínimo necessário para ser capaz de compilar programas com ele. Você não quer que os programas tenham nenhuma dependência extra compilada por acidente. Nós queremos compilar um sistema baseado na Glibc 2.3/GCC 3.3 aqiu, então tente pegar uma distro Linux PPC que suporte-os, ou os atualize para essas versões utilizando meios providos pela sua distribuição, ou simplesmente faça a mão (você irá destruir a distribuição no final, de qualquer forma).
  2. Então, crie diretórios no estilo do GoboLinux nele: /Programs, /System, etc. No caso de você não ter nenhum sistema x86 por perto, nós podemos providenciar para você as informações necessárias de como o GoboLinux se parece. ;)
  3. Agora, pegue o último pacote de Scripts do GoboLinux do gobolinux.org e o descompacte em /Programs. Você deve ter agora arquivos em /Programs/Scripts/(date). Você deverá precisar copiar os arquivos de Scripts/20031115-hisham/Resources/Defaults/Settings para /Programs/Scripts/Settings. Vá para /System/Links/Executables, /System/Settings, e amigos e crie os links simbólicos a mão.
  4. Adicione /System/Links/Executables ao seu PATH, /System/Links/Libraries ao seu LD_LIBRARY_PATH, e por aí vai. Ter uma distribuição GoboLinux x86 com certeza irá ajudá-lo para que você possa olhá-lo e compará-lo. Coloque as coisas do GoboLinux antes de forma que sua distribuição antiga vá sendo gradualmente sobrescrita. Você poderá encontrar dificuldades com /etc vs. /System/Settings, porque diferente dos executáveis, bibliotecas e headers, não existe uma variável de ambiente para ele. Faça isto, então: renomeie /etc para /etc-old, crie links de tudo do /etc-old para dentro de /System/Settings, e faça com que o /etc aponte para /System/Settings.
  5. Eu não lembro agora se existe algum script GoboLinux essencial que seja escrito em uma linguagem compilada. Deixem-me checar isso, só um segundo... oh, apenas um: RealPath. Ele é um programa trivial em C que apenas chama realpath(3). Os fontes não estão no meu computador agora... quem os tem?
  6. Ok, então a partir de agora você pode teoricamente rodar o CompilePackage e coisas do gênero. Vamos pegar um pequeno programa para um teste. Pegue esse cara: ftp://ftp.gw.com/mirrors/pub/unix/file/file-4.04.tar.gz e tente rodar: CompileProgram file-4.04.tar.gz Se ele compilar, e no final você tiver algo como /Programs/File/4.04/bin/file, então nós estamos quase lá.
  7. Pegue o pacote Compile que contém regras automatizadas de compilação para a maior parte do sistema base. Você irá encontrá-lo em: http://gobolinux.org/~lode/GoboLinux/Compile Descompacte-o no /Depot e, a partir de agora, ele deverá funcionar fora da caixa. Agora, vá seguindo a lista de pacotes do Linux from Scratch. Você quer a lista da Parte III, Capítulo 6. Sinta-se livre (e encorajado) para pular alguns pacotes críticos e propícios a erro como a Glibc, Binutils, GCC e Ncurses. (Na verdade, eu acho que eu não tenho Recipes para a Glibc e o GCC ainda -- existem alguns pacotes source do GoboLinux ara eles em algum lugar, eu irei criar Recipes baseados neles). Quando você tiver acabado, nós esperaremos já ter todos os Recipes necessários para compilar o Base finalizados, então vamos assumir que você poderá compilar toda a base desta forma. Inicie com "Compile Man-Pages" e continue a partir daí.
  8. Agora, do que nós precisamos para ter um sistema completo? Vamos pensar... Pegue o pacote BootScripts do website. Eles são apenas shell scripts, então eles devem ser portáveis. Instale-o normalmente com o InstallPackage. Cheque em um sistema GoboLinux x86 quais arquivos não-symlinks deverão estar presentes no /System/Settings. Lembrando de cabeça, tem o passwd, group, inittab, fstab... Existem mais, isso é algo que precisa ser checado. Bem, você também irá precisar de um kernel e dos módulos no /System/Kernel/Boot e /System/Kernel/Modules (crie links simbólicos em /lib/modules). Pegue o kernel e módulos da sua distribuição, vamos reduzir as fontes de problemas em potencial. Mais tarde você pode compilar um kernel com o GoboHide e outras maravilhas.
  9. Bom, é isso. Configure seu bootloader favorito e voilà! Aí está você com seu sistema GoboLinux PPC. É um punhado de trabalho, mas é factível, especialmente pelo fato de que nós já "estivemos lá e fizemos" e podemos ajudá-lo caso problemas aparecerem. Apenas mantenha um disco de recuperação em mãos porque você provavelmente irá deixar seu sistema não-bootável algumas vezes durante o processo. :)

Whoa!

Nós nem ao menos chegamos a dez. estou certo de que esqueci alguma coisa ou outra, mas eu acredito que abordei as partes mais importantes. Então você tem o "Guia de Porte do GoboLinux versão 0.0.0.0.0.0.1" :) Estou muito entusiasmado com a idéia de portar o GoboLinux para arquiteturas não-x86. Fernando Massen e eu brincamos com essa idéia uma vez, mas nós tentamos fazer isso sobre o Mac OSX, o que é uma má idéia por ele ser baseado em ferramentas BSD de espaço de usuário, enquanto o GoboLinux assume um sistema GNU. Nós chegamos ao ponto de ter alguns pacotes compilados... CoreUtils--5.0--G4.tar.bz2, se eu me lembro corretamente, mas o Massen perdeu interesse no projeto logo depois. Usando um sistema Linux PPC poderia reduzir muitas das dificuldades. Se foi possível fazer sobre o OS X, é certamente possível fazê-lo sobre uma distribuição Linux PPC, e eu acredito que o mesmo seja verdade para outras arquiteturas.

Divirta-se e sinta-se livre para tirar qualquer dúvida na lista!