Pergunta sobre a instalação de programas - cmake / make v / s manual (?)

0

Estou no Ubuntu 17 no momento, mas isso se aplica a todos os sistemas operacionais Linux.

Muitas vezes, encontrei aplicativos compactados em um tarball para eu instalar. A primeira vez que me deparei com um desses eu sabia ainda menos do que sei agora (o que não é muito). Naquela época eu apenas brinquei com os arquivos até conseguir executar o programa simplesmente colocando ./executable no terminal. O que eu fiz toda vez depois disso para programas nesse formato era mover a pasta para /usr/local/lib (para que não entupisse minhas pastas) e criar um .desktop em /usr/share/applications com todas as informações executáveis e de aplicativo .

Hoje encontrei um aplicativo que já havia instalado da maneira mencionada anteriormente, mas o procedimento de instalação deles foi executar o seguinte

cd program_folder_to_install 
mkdir build
cd build
cmake -(options)

Como esses dois procedimentos diferem? Tanto quanto eu posso dizer a maneira como eu instalei funciona muito bem.

Os programas que eu instalei não estão realmente instalados no meu computador?

Tenho certeza Se eu olhar em todos os outros aplicativos que eu instalei dessa maneira eu posso encontrar outro cujas instruções dizem para instalá-lo com cmake ou make mas eu não sei a diferença e se eu deveria ir de volta e instalá-los dessa maneira.

Obrigado por qualquer informação sobre isso!

    
por M.O. 19.07.2018 / 20:34

1 resposta

1

Existe uma infinidade de maneiras de instalar o software. Alguns requererão compilação (C, C ++ e outras linguagens), e alguns não precisam ou não precisam de compilação (linguagens de script como shell não, e outras como Ruby ou Perl podem ou não ter bits que precisam ser compilado). Assim, em cada caso, você precisará examinar a documentação ou os arquivos disponíveis para descobrir como criar e instalar o software. Os principais sistemas incluem:

  • make terá um Makefile ou GNUmakefile , que terá várias regras para criar ou possivelmente instalar o software e possivelmente poderá requerer que alguma versão específica do make (ou gmake ) seja instalada.
  • Os sistemas baseados no Autotools devem ter um script ./configure no tarball. Isso, em teoria, deve ser executado em qualquer lugar, a menos que seu sistema seja muito estranho.
  • no entanto, alguns pacotes do autotools podem ter apenas um configure.ac ou um conjunto semelhante de arquivos. você precisará deles para executar autoreconf ou similar, o que deve gerar um script ./configure que pode ser executado.
  • Os sistemas baseados em Cmake que você descobriu exigem cmake e para executar vários comandos relacionados cmake .

Esta não é uma lista completa; existem outros sistemas de software de compilação e instalação e, em seguida, há sistemas de pacotes ou portas de fornecedores, e as várias linguagens de script terão um ou mais sistemas de compilação para construir módulos para esses idiomas e assim por diante.

    
por 19.07.2018 / 21:41