2. Onde obter as coisas

Nos três anos transcorridos desde a primeira versão deste 'COMO FAZER', distribuições úteis do Linux tornaram-se predominantes. Então, onde eu, certa vez, gastei páginas listando sites de FTP e horas atualizando (falhando ao atualizar) números de versão e nomes de diretórios, agora eu simplesmente direi - o mantenedor da sua distribuição devia estar cuidando disso para você. Se você não tem, digamos, o gcc instalado, encontre os pacotes RPM ou deb que o contém e instale-o. Se isto não é uma opção porque você não tem uma distribuição amigável, você quase certamente tem usado o Linux por tempo suficiente para que você não precise de mim para contar onde encontrar as coisas.

2.1. Este documento

Você está lendo-o. Você provavelmente já o possui.

Este documento é um dos documentos da série COMO FAZER do Linux, de forma que já está, provavelmente, instalado em algum lugar em /usr/doc se você está lendo isto em uma máquina linux. Caso contrário, obtenha-o nos repositórios de COMO FAZER do Linux (tente Metalab) e (possivelmente em uma versão ligeiramente mais nova) no meu web site pessoal www.telent.net.

2.2. Outra documentação

A documentação oficial para o gcc está incluída na distribuição do fonte (veja abaixo) em arquivos texinfo, e em arquivos .info. Se você tem uma conexão de rede rápida, um drive de cd-rom, ou uma quantidade razoável de paciência, você pode apenas extraí-la com tar e copiar os bits relevantes em /usr/info. Se não, você pode encontrá-los em tsx-11, mas não necessariamente, sempre na última versão.

Existem duas fontes de documentação para a libc. A libc GNU vêm com arquivos info que descrevem a libc do Linux de forma razoavelmente precisa exceto stdio. Adicionalmente, os arquivos de páginas man são escritos para o Linux e descrevem uma grande quantidade de chamadas de sistema (seção 2) e funções da libc (secão 3).

2.3. GCC

Existem duas respostas.

(a) A distribuição oficial do GCC do Linux pode sempre ser encontrada na forma binária (já compilada) em . No momento da redação deste documento, 2.7.2 (gcc-2.7.2.bin.tar.gz) é a última versão.

(b) A última distribuição do fonte do GCC vinda da Free Software Foundation pode ser obtida em GNU archives. Esta não é necessariamante, sempre a mesma versão acima, ainda que agora seja. O(s) mantenedor(es) do GCC do Linux facilitaram para você a tarefa de compilar a última versão disponível --- o script configure deve preparar tudo para você. Verifique tsx-11 também, para obter correções que você pode querer aplicar.

Para compilar qualquer coisa não-trivial (e umas poucas coisas triviais também) você também vai precisar da

2.4. Biblioteca C e arquivos de cabeçalho

O que você quer aqui depende de (i) saber se o seu sistema é ELF ou a.out, e (ii) qual deles você quer que ele seja. Se você está fazendo um upgrade da libc 4 para a libc 5, recomenda-se que você olhe no COMO FAZER do ELF obtido aproximadamente no mesmo lugar onde você encontrou este documento.

Estes estão disponíveis em tsx-11 como acima:



libc-5.2.18.bin.tar.gz

--- Imagens da biblioteca compartilhada ELF, bibliotecas estáticas e arquivos include para o C e bibliotecas de matemática.

libc-5.2.18.tar.gz

--- Fonte para o software acima. Você também vai precisar do pacote .bin. para os arquivos de cabeçalho. Se você está decidindo se compila a biblioteca C você mesmo ou usa os binários, a resposta certa, em aproximadamente todos os casos, é usar os binários. Você vai precisar compilar manualmente, entretanto, se quiser suporte a NYS ou shadow de senhas.

libc-4.7.5.bin.tar.gz

--- Imagens da biblioteca compartilhada a.out e bibliotecas estáticas para a versão 4.7.5 da biblioteca C e amigos. Esta é projetada para coexistir com o pacote libc 5 acima, mas é apenas realmente necessária se você quiser continuar o uso/desenvolvimento de programas no formato a.out.

2.5. Ferramentas associadas (as, ld, ar, strings etc)

A partir de tsx-11, exatamente como tudo mais até agora. A versão atual é binutils-2.6.0.2.bin.tar.gz.

Note que o pacote binutils está disponível apenas em ELF, a versão atual da libc está em ELF e que a libc no formato a.out funciona melhor quando usada em conjunto com uma libc ELF. O desenvolvimento da biblioteca C está movendo-se enfaticamente para o lado ELF, e, a menos que você tenha razões realmente boas para precisar de alguma coisa no formato a.out, você deve fazer o mesmo.