make install
faz o que o Makefile
autor deseja. Normalmente, a essa altura, é tarde demais para alterar o diretório de instalação, como costuma ser conhecido anteriormente , durante a construção, para que os arquivos de ajuda e os arquivos de configuração possam ser referenciados com os nomes de caminho corretos.
Muitos projetos usam as ferramentas automáticas GNU para tentar melhorar sua portabilidade entre as diferenças de hardware e sistema operacional. (Diferentes variantes do Unix usam cabeçalhos ligeiramente diferentes para declarações de funções que estão um pouco fora do caminho usual - exceto que a maioria dos programas precisa de um ou outro daqueles declarados em locais diferentes.)
Quando um projeto usa as Autotools, o mantra normal para instalá-lo é:
./configure
make
make install
O ./configure
tipicamente permite que você use uma opção de linha de comando como --prefix /opt/apache
ou algo semelhante para especificar um caminho diferente. /usr/local/
é um padrão comum prefix
. É muito mais fácil o software construído localmente residir em um local e o software fornecido pela distribuição residir nos "diretórios principais": /usr/
/bin/
e assim por diante. (Os empacotadores têm muito cuidado para nunca tocar nos arquivos /usr/local/
- eles sabem que é exclusivo para administradores de sistema.)
De qualquer forma, o ./configure --prefix /path/to/new/prefix
irá definir uma variável no Makefile
que está disponível ao compilar o programa, modificando as páginas de manual para que eles apontam para os locais corretos para arquivos, modificar arquivos de configuração, etc. Então, make
vai construir o software especificamente para o local que deseja instalar e make install
irá instalá-lo nesse local.
A maioria dos programas pode ser executada mesmo sem a make install
etapa final - apenas ./program_name
os inicia com frequência. Definitivamente, isso é uma coisa por projeto - alguns, como postfix
, qmail
etc., são feitos de muitas peças móveis diferentes e dependem de todos eles trabalhando juntos. Outros, como ls
ou su
podem ser independentes o suficiente para executar bem a partir do diretório em que foram criados. (Isso geralmente não é útil - mas às vezes é muito útil).
No entanto, nem todos os projetos usam o Autotools - eles são enormes , complicados e miseráveis de manter. Makefile
S manuscritos são muito mais simples de escrever, e eu pessoalmente acho que apenas distribuir um simples Makefile
com variáveis de configuração disponíveis é muito mais fácil para desenvolvedores e usuários. (Embora o ./configure ; make ; make install
mantra seja realmente fácil para os usuários quando funciona.)
make install
etapas do ponto de vista dos programadores.