Linux do zero

Linux do zero

Atualmente estou fazendo Linux From Scratch. Baixei alguns pacotes. Descompactei-os usando o comando "tar" e fiz o seguinte dentro do pacote extraído:

  1. configurar
  2. fazer
  3. fazer teste
  4. fazer instalar

Mais uma coisa: o que é makefile?

Por favor, explique-me o propósito desses comandos, especialmente em termos de LFS.Agradecemos antecipadamente.

Responder1

Eu (mais ou menos) sei o que faz, mas não tenho certeza se sei como explicar.

Basicamente, com a sequência de comandos que você mencionou, você está criando algo em formato executável binário (um programa, uma biblioteca) a partir do código-fonte (ou seja, código escrito em uma linguagem de programação) e instalando-o em seu sistema operacional (movendo-o para uma pasta apropriada , configurando arquivos de configuração, etc.).

O makefile é um arquivo de texto que o comando make usa. Ajuda (automatiza) tarefas. Um único makefile pode conter informações para mais de uma tarefa ou ação a ser executada pelo make. Sem um makefile você teria que executar muitas etapas manuais complicadas para fazer as coisas.

"configurar": (explicação retirada deaqui) Verifica alguns detalhes sobre a máquina na qual o software será instalado. Este script verifica muitas dependências em seu sistema. Para que o software específico funcione corretamente, pode ser necessário que muitas coisas já existam em sua máquina. Se algum dos requisitos principais estiver faltando em seu sistema, o script de configuração será encerrado e você não poderá prosseguir com a instalação até obter os itens necessários. Caso contrário, ele cria o Makefile para ser usado na próxima etapa.

"make" sem parâmetros: instrui o make a executar a ação padrão (regra) no makefile. Isso geralmente compila, vincula e gera o binário que você está tentando criar (ou seja, o programa ou biblioteca). Isso geralmente envolve a conversão do código-fonte em arquivos objeto (que geralmente possuem a .oextensão) e vinculá-los a um arquivo binário final (que no caso de programas Linux geralmente não possui extensão ou no caso de bibliotecas Linux geralmente possui a extensão .soou .a). Não tenho certeza sobre as etapas porque sou um programador Java e não as executamos com muita frequência).

"make test": realiza testes nesse binário.

"make install": basicamente move o binário para o local apropriado da pasta.

É claro que esta explicação pode receber muitas melhorias, estou apenas tentando dar uma ideia do processo geral.

Este breve tutorialpode fornecer mais algumas informações.

Responder2

O uso de um Makefilefacilita a vida tanto do desenvolvedor quanto do usuário final. Basicamente, é uma folha de dicas de como construir um software específico. Para um simples "Olá, mundo", g++ hw.cpp -o hello_worldpode funcionar. No entanto, quando você tem um software muito mais complexo, muitas vezes a peça A precisa ser construída antes da peça B e, uma vez concluídas as duas, a peça C pode ser construída. Digitá-los manualmente - bem como inserir caminhos para bibliotecas incluídas, arquivos de saída temporários, caminhos finais de instalação, etc. (geralmente determinados quando o configurescript é executado) - pode levar a erros.

informação relacionada