3.1. Introdução

Este capítulo inclui uma lista de pacotes que precisam ser baixados para a finalidade de construir um sistema Linux básico. Os números de versão listados correspondem a versões dos aplicativos que são conhecidos por funcionar e este livro é baseado no uso deles. Nós recomendamos veementemente contra o uso de versões diferentes, pois os comandos de construção para uma versão possivelmente não funcionem com uma versão diferente, a menos que a versão diferente seja especificada por uma errata do LFS ou conselho de segurança. As versões mais novas de pacote possivelmente também tenham problemas que exijam contornos. Esses contornos serão desenvolvidos e estabilizados na versão de desenvolvimento do livro.

Para alguns pacotes, o tarball de lançamento e o tarball instantâneo de repositório (Git ou SVN) para aquele lançamento possivelmente seja publicado com nomes de arquivo semelhantes. Um tarball de lançamento contém arquivos generalizados (por exemplo, um script configure gerado pelo autoconf), em adição ao conteúdo do correspondente instantâneo de repositório. O livro usa tarballs de lançamento sempre que possível. Usar um instantâneo de repositório em vez de um tarball de lançamento especificado pelo livro causará problemas.

Os locais das transferências possivelmente não estejam sempre acessíveis. Se um local de transferência tiver mudado desde quando este livro foi publicado, [então] o Google (http://www.google.com/) fornece um motor de busca útil para a maioria dos pacotes. Se essa busca for mal sucedida, [então] tente um dos meios alternativos de transferência em https://www.linuxfromscratch.org/lfs/mirrors.html#files.

Os pacotes e os remendos baixados precisarão ser armazenados em algum lugar que esteja convenientemente disponível durante a construção inteira. Um diretório de trabalho também é exigido para desempacotar os fontes e construí-los. $LFS/sources pode ser usado, tanto como o lugar para armazenar os tarballs e os remendos, quanto como um diretório de trabalho. Usando esse diretório, os elementos exigidos estarão localizados na partição do LFS e estarão disponíveis durante todos os estágios do processo de construção.

Para criar esse diretório, execute o seguinte comando, como usuária(o) root, antes de começar a sessão de transferência:

mkdir -v $LFS/sources

Torne esse diretório gravável e "sticky". Sticky significa que, mesmo se múltiplas(os) usuárias(os) tenham permissão de escrita, só a(o) dona(o) de um arquivo pode deletar o arquivo dentro de um diretório sticky. O seguinte comando habilitará os modos escrita e sticky:

chmod -v a+wt $LFS/sources

Existem muitas maneiras para obter todos os pacotes e remendos necessários para construir o LFS:

Para transferir todos os pacotes e os remendos usando a wget-list-sysv como uma entrada gerada para o comando wget, use:

wget --input-file=wget-list-sysv --continue --directory-prefix=$LFS/sources

Adicionalmente, começando com o LFS-7.0, existe um arquivo separado, md5sums, que pode ser usado para verificar se todos os pacotes corretos estão disponíveis antes de prosseguir. Coloque aquele arquivo em $LFS/sources e execute:

pushd $LFS/sources
  md5sum -c md5sums
popd

Essa verificação pode ser usada após recuperar os arquivos necessários com qualquer dos métodos listados acima.

Se os pacotes e os remendos forem transferidos como um(a) usuário(a) não root, [então] esses arquivos serão de propriedade do(a) usuário(a). O sistema de arquivos registra o(a) proprietário(a) pelo UID dele(a) e o UID de um(a) usuário(a) normal na distribuição anfitriã não é atribuído no LFS. Assim, os arquivos serão deixados de propriedade de um UID sem nome no sistema LFS final. Se você não atribuirá o mesmo UID para o(a) seu(ua) usuário(a) no sistema LFS, [então] mude os proprietários(as) desses arquivos para root agora para evitar esse problema:

chown root:root $LFS/sources/*