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 ou até mesmo idênticos. Porém, o tarball de lançamento possivelmente contenha alguns arquivos que sejam essenciais, embora não armazenados no repositório (por exemplo, um conjunto de comandos sequenciais 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.
Listados na próxima página estão vários pacotes importantes
localizados em ftpmirror.gnu.org. O
local canônico dos pacotes em foco é ftp.gnu.org>, mas, devido a um ataque
distribuído de negação de serviços (DDOS) de longa duração, o(a)
administrador(a) do sítio sugeriu que os(as) editores(as) do LFS
usassem ftpmirror.gnu.org. Vejam-se
Notícias do Slashdot para detalhes.
O URL ftpmirror.gnu.org, na
verdade, redireciona para um dos espelhos do sítio ftp.gnu.org. Você também pode selecionar um
espelho manualmente em vez de usar ftpmirror.gnu.org. Uma lista dos espelhos está
localizada em https://www.gnu.org/prep/ftp.en.html.
Se você escolher usar a lista wget descrita abaixo, esse arquivo
também pode ser modificado para usar teu espelho desejado.
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 usante
root, antes de começar a sessão de
transferência:
mkdir -v $LFS/sources
Torne esse diretório escrevível e sticky. “Sticky” significa que, mesmo se múltiplos(as) usantes tiverem permissão de escrita sobre um diretório, somente o(a) dono(a) de um arquivo conseguirá 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-systemd como uma entrada gerada para o comando wget, use:
wget --input-file=wget-list-systemd --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) usante não
root, esses arquivos serão de
titularidade de propriedade do(a) usante. O sistema de arquivos
registra o(a) proprietário(a) pelo UID dele(a) e o UID de um(a)
usante 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 teu(ua)
usante no sistema LFS, mude os(as) proprietários(as) desses arquivos
para root agora para evitar esse
problema:
chown root:root $LFS/sources/*