sudo make install - o que está sendo instalado?

1

Eu tenho que executar este bloco de código enigmático.

git clone https://github.com/OpenICC/xcalib.git
cd xcalib
cmake CMakeLists.txt
sudo make install

O procedimento que estou seguindo menciona o processo de desinstalação.

sudo make uninstall 

Por que os comandos make install e uninstall não possuem nenhum nome de arquivo ou programa? Na minha opinião, eles deveriam ser feitos assim.

sudo make install program_name
sudo make uninstall program_name

o mesmo que

sudo apt-get install program_name

sudo make install implora a pergunta " instalar o que? "

    
por stackinator 20.11.2018 / 20:14

2 respostas

3

Os comandos executados por make install (ou qualquer chamada de make ) são definidos no Makefile (e arquivos incluídos pelo Makefile ). Para programas simples, você pode apenas procurar por uma linha install: e ver os comandos nas linhas abaixo. Mas makefiles também podem ser bastante complicados e espalhados por vários subdiretórios. Para mais detalhes, consulte o manual de make ou uma introdução a make .

Como @Romeo Ninov escreveu, você também pode usar o comando make -n install para ver quais comandos seriam executados. Tenha em atenção que, para makefiles maiores, esta saída pode não ser exacta e, se ainda não tiver construído o programa, irá provavelmente mostrar todos os comandos a construir antes de mostrar os comandos a instalar.

    
por 20.11.2018 / 20:58
1

Se nenhum arquivo for passado para make, faça uma busca por um arquivo chamado Makefile no diretório atual. Com o interruptor -f um arquivo alternativo pode ser passado para fazer. Veja man make para mais informações. A propósito: make é uma dessas boas ferramentas antigas do Unix, então tente se familiarizar com ele ...

    
por 20.11.2018 / 23:04