Como fazer uma distribuição Linux (parte 1)
Esse artigo é uma adaptação da documentação Komain, que visa apresentar ao leitor os passos necessários para construir uma distribuição Linux a partir dos códigos fontes disponíveis na rede. Esse será um artigo longo, já que meu livro tem 73 páginas e denso, pois muitos conceitos apresentados aqui são extremamente avançados para iniciantes.
Parte 7: Glibc
Pra variar a documentação recomenda a compilação do pacote em um diretório dedicado, ou seja:
# mkdir $ROOT_KMI/fontes/glibc-build
Após descompactar o glibc, entre no diretório:
# cd $ROOT_KMI/fontes/glibc-2.3.4-20040701
Agora configure com o comando:
# cd $ROOT_KMI/fontes/glibc-build
# ../glibc-2.3.4-20040701/configure --prefix=/temp \
--disable-profile --enable-add-ons=nptl--with-tls \
--with-__thread --with-binutils=/temp/bin \
--without-gd --enable-kernel=2.6.0 --without-cvs \
--with-headers=/temp/headers
Onde:
# make
Isso demora bastante tempo também, vá tomar um café =P
Faça o teste com:
# make check
Dá tempo de pedir uma pizza, que tal? =P
Várias coisas podem da errado aqui, os mais comuns são:
Não se preocupe muito com as falhas que podem ocorrer, esse não é a glibc definitiva ainda.
Para desencargo de consciência, crie o seguinte arquivo:
# mkdir $ROOT_FS/temp/etc
# touch $ROOT_FS/temp/etc/ld.so.conf
E finalmente:
# make install
Bom, continuando nossa epopéia, faremos uma operação de risco, parece voodoo isso que vamos fazer agora, então preste atenção!
# mkdir $ROOT_KMI/fontes/glibc-build
Após descompactar o glibc, entre no diretório:
# cd $ROOT_KMI/fontes/glibc-2.3.4-20040701
Agora configure com o comando:
# cd $ROOT_KMI/fontes/glibc-build
# ../glibc-2.3.4-20040701/configure --prefix=/temp \
--disable-profile --enable-add-ons=nptl--with-tls \
--with-__thread --with-binutils=/temp/bin \
--without-gd --enable-kernel=2.6.0 --without-cvs \
--with-headers=/temp/headers
Onde:
- --disable-profile : desativa as informações de profiling.
- --enable-add-ons=nptl : ativa suporte aos nptl.
- --with-binutils= : mostra onde as ferramentas binutils estão localizadas.
- --without-gd : impede que o programa, memusagestat seja compilado, ele tem uma série de dependências como libz, libpng, etc.
- --without-cvs : mera formalidade, este impede que versões CVS da glibc sejam atualizadas durante a compilação, não é nosso caso.
- --with-headers= : caminho dos headers do kernel do Linux.
# make
Isso demora bastante tempo também, vá tomar um café =P
Faça o teste com:
# make check
Dá tempo de pedir uma pizza, que tal? =P
Várias coisas podem da errado aqui, os mais comuns são:
- Erros de "math", pode estar relacionado a problemas com seu processador caso ele não seja um Intel/AMD genuíno.
- Problemas como a opção "atime", caso a partição onde está a distro esteja montada com o flag "noatime".
- O shm pode falhar caso você use devfs mas não tenha um sistema desses instalado.
Não se preocupe muito com as falhas que podem ocorrer, esse não é a glibc definitiva ainda.
Para desencargo de consciência, crie o seguinte arquivo:
# mkdir $ROOT_FS/temp/etc
# touch $ROOT_FS/temp/etc/ld.so.conf
E finalmente:
# make install
Bom, continuando nossa epopéia, faremos uma operação de risco, parece voodoo isso que vamos fazer agora, então preste atenção!
Estou esperando já as outras partes do tutorial, pois acho muito interessante conhecer como nasce um distro.
Além de que está muito bem explicado.
Aguardo a continuação.
Valeu.