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:
Os arquivos podem ser transferidos individualmente conforme descrito nas próximas duas seções.
Para versões estáveis do livro, um tarball de todos os arquivos necessários pode ser transferido a partir de um dos sítios espelhos listados em https://www.linuxfromscratch.org/mirrors.html#files.
Os arquivos podem ser transferidos usando o wget e uma lista wget conforme descrito abaixo.
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/*