8.51.1. Instalação do Python 3
        
        
          Prepare o Python para compilação:
        
        ./configure --prefix=/usr       \
            --enable-shared      \
            --with-system-expat  \
            --enable-optimizations
        
          
            O significado das opções do configure:
          
          
            - 
              
--with-system-expat
             
            - 
              
                Essa chave habilita vinculação contra a versão de sistema do
                Expat.
              
             
            - 
              
--enable-optimizations
             
            - 
              
                Essa chave habilita etapas extensivas, porém consumidoras de
                tempo, de otimização. O interpretador é construído duas
                vezes; testes realizados na primeira construção são usados
                para melhorar a versão otimizada final.
              
             
          
         
        
          Compile o pacote:
        
        make
        
          Executar os testes neste ponto não é recomendado. Os testes são
          conhecidos por travar indefinidamente no ambiente parcial do LFS.
          Se desejado, [então] os testes podem ser reexecutados ao final
          deste capítulo ou quando o Python 3 for reinstalado no BLFS. Para
          executar os testes de qualquer maneira, emita make test.
        
        
          Instale o pacote:
        
        make install
        
          Nós usamos o comando pip3 para instalar os aplicativos
          e módulos do Python 3 para todos(as) os(as) usuários(as) como
          root em vários lugares neste livro.
          Isso conflita com a recomendação dos(as) desenvolvedores(as) do
          Python: instalar pacotes no ambiente virtual ou no diretório home
          de um(a) usuário(a) regular (executando pip3 como esse(a) usuário(a)). Um
          aviso multi linhas é deflagrado sempre que pip3 for emitido pelo(a)
          usuário(a) root.
        
        
          A razão principal para a recomendação é para evitar conflitos com o
          gerenciador de pacote do sistema (dpkg, por exemplo). O LFS não tem
          um gerenciador de pacote abrangente ao sistema, de modo que isso
          não é um problema. Também, o pip3 verificará se existe uma
          nova versão dele próprio sempre for executado. Uma vez que a
          resolução de nome de domínio ainda não está configurada no ambiente
          chroot do LFS, o pip3
          não consegue verificar se existe uma nova versão dele próprio e
          produzirá um aviso.
        
        
          Depois que nós inicializarmos o sistema LFS e configurarmos uma
          conexão de rede de comunicação, um aviso diferente será emitido,
          informando para o(a) usuário(a) atualizar o pip3 a partir de uma roda
          pré-construída em PyPI (sempre que uma nova versão estiver
          disponível). Porém, o LFS considera que o pip3 é uma parte do Python 3, de
          forma que ele não deveria ser atualizado separadamente. Além disso,
          uma atualização a partir de uma roda pré-construída se desviaria do
          nosso objetivo: construir um sistema Linux a partir do código
          fonte. Assim, o aviso a respeito da nova versão do pip3 deveria ser ignorado também.
          Se desejar, você pode suprimir todos esses avisos executando o
          seguinte comando, o qual cria um arquivo de configuração:
        
        cat > /etc/pip.conf << EOF
[global]
root-user-action = ignore
disable-pip-version-check = true
EOF
        
          
          
            Importante
          
          
            No LFS e no BLFS normalmente nós construímos e instalamos módulos
            do Python com o comando pip3. Por favor, tenha certeza
            de que os comandos pip3
            install em ambos os livros sejam executados como
            o(a) usuário(a) root (a menos que
            seja para um ambiente virtual do Python). Executar um
            pip3 install como
            um(a) usuário(a) não root
            possivelmente aparente funcionar, porém causará o módulo
            instalado ficar inacessível por outros(as) usuários(as).
          
          
            O pip3 install não
            reinstalará um módulo já instalado automaticamente. Quando usar o
            comando pip3
            install para atualizar um módulo (por exemplo, de
            meson-0.61.3 para meson-0.62.0), insira a opção --upgrade na linha de comando. Se
            realmente for necessário desatualizar um módulo ou reinstalar a
            mesma versão por alguma razão, [então] insira --force-reinstall --no-deps na
            linha de comando.
          
         
        
          Se desejado, então instale a documentação pré-formatada:
        
        install -v -dm755 /usr/share/doc/python-3.12.2/html
tar --no-same-owner \
   -xvf ../python-3.12.2-docs-html.tar.bz2
cp -R --no-preserve=mode python-3.12.2-docs-html/* \
    /usr/share/doc/python-3.12.2/html
        
          
            O significado dos comandos de instalação da
            documentação:
          
          
            - 
              
--no-same-owner
              ("tar") e --no-preserve=mode
              ("cp")
             
            - 
              
                Garanta que os arquivos instalados tenham a titularidade de
                propriedade e as permissões corretas. Sem essas opções, o
                "tar" instalará os arquivos
                de pacote com os valores do(a) criador(a) desenvolvedor(a) e
                os arquivos teriam permissões restritivas.