`make install` substitui arquivos?

`make install` substitui arquivos?

Demorei algum tempo para instalar uma versão mais recente do Apache2.x no meu Mac Os X 10.6.8.

Ao configurar o apache através de ./configure especifiquei o layout Darwin. Este layout assume a configuração do caminho da instalação existente do apache, que é o que eu quero, já que meu objetivo é substituir o antigo.

Executei o make e, claro, o sudo make install.

Eu verifiquei a versão do Apache fazendo

apachetcl -v

e eu consegui

Server version: Apache/2.4.1 (Unix)
Server built:   Mar 31 2012 01:52:54

Qual é bom. Mas então aqui está a parte estranha. Eu verifiquei o arquivo httpd.conf 'antigo' em /etc/apache2 e ele tinha uma data de modificação antiga.

Eu realmente não descobri isso até tentar executar o Apache. O Apache tentou carregar algumas extensões que não eram compatíveis com a nova versão.

Isso me levou a verificar o diretório /usr/libexec/apache2 e vi que os módulos não haviam sido modificados recentemente, exceto dois ou três. Essencialmente, sudo make install não substituiu todos os arquivos possíveis.

What is the convention here? Should make install overwrite everything or not?

Presumo que depende apenas de como os desenvolvedores escreveram o script de configuração e o Makefile.

Acabei fazendo alguns rm -rf em qualquer diretório apache existente que eu conhecia antes de executar make install novamente. Depois disso, tudo estava fresco.

Responder1

Você está correto quanto às Makefileúnicas coisas que acontecem são definidas nele ou em scripts complementares que são executados. As "práticas recomendadas" ao atualizar o software da fonte normalmente são usar a uninstallopção se você não executou make cleanou excluiu o diretório de instalação da fonte original.

Você deve ter cuidado, caso o programa tenha instalado arquivos fora de /usr/localvocê, você pode remover arquivos que foram adicionados pelo gerenciador de pacotes. Freqüentemente, os arquivos de configuração principais, como os do Apache, não são destruídos e simplesmente excluídos durante a instalação, eles podem ou são preservados. Embora nem sempre seja esse o caso. Você pode fazer backup de todos os destinos com a opção -bou --backuppara instalar.

Editar: Olhando para Makefile.ina versão atual, httpdparece que vários de seus cpcomandos adicionam a -popção que preserva a propriedade e os carimbos de data e hora.

informação relacionada