Linux From Scratch [closed]

1

Atualmente estou fazendo o Linux From Scratch. Eu baixei alguns pacotes. Eu os descompacte usando o comando "tar" e faça o seguinte dentro do pacote extraído:

  1. configure
  2. fazer
  3. faça teste
  4. faça a instalação

Mais uma coisa, o que é makefile?

Por favor, explique-me o propósito destes comandos, especialmente em termos de LFS.Graças antecipadamente.

    
por PRANAY KASTHALA 03.03.2018 / 23:26

2 respostas

-1

Eu (meio que) sei o que isso 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 binário executável (um programa, uma biblioteca) fora 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. Isso ajuda (automatiza) as tarefas. Um único makefile pode conter informações para mais de uma tarefa ou ação para execução. Sem um makefile, você teria que executar várias etapas manuais complicadas para fazer as coisas.

"configure": (explicação retirada de aqui ) Verifica alguns detalhes sobre a máquina na qual o software será instalado. Este script verifica se há muitas dependências em seu sistema. Para que o software em particular funcione corretamente, pode estar exigindo muitas coisas já existentes na sua máquina. Se algum dos principais requisitos estiver faltando em seu sistema, o script de configuração será encerrado e você não poderá continuar com a instalação até obter as coisas necessárias. Caso contrário, 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, liga e gera o binário que você está tentando criar (ou seja, o programa ou biblioteca). Isso geralmente envolve converter o código-fonte em arquivos-objeto (que geralmente têm a extensão .o ) e vinculá-los a um arquivo binário final (que no caso dos programas Linux geralmente não tem extensão ou no caso de bibliotecas Linux geralmente possui .so ou .a extensão). Não tenho certeza sobre as etapas porque sou um programador Java e não realizamos essas etapas com muita frequência).

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

"make install": basicamente move o binário para a localização correta da pasta.

Esta explicação pode, claro, receber muitas melhorias, estou apenas tentando dar uma idéia do processo geral.

Este breve tutorial pode fornecer mais algumas informações.

    
por 03.03.2018 / 23:48
3

O uso de um Makefile facilita a vida do desenvolvedor e do usuário final. Basicamente, é uma folha de dicas de como construir um determinado software. Para um simples "Hello world", um g++ hw.cpp -o hello_world pode funcionar. No entanto, quando você tem um software muito mais complexo, muitas vezes é necessário que a peça A seja construída antes da peça B e, depois que as duas forem concluídas, a peça C possa ser construída. A digitação manual dos mesmos - bem como a inserção de caminhos para bibliotecas incluídas, arquivos de saída temporária, caminhos de instalação final, etc (geralmente determinados quando o script configure é executado) - pode levar a erros.

    
por 04.03.2018 / 00:15