“Compilar significa que uma linguagem será convertida para uma linguagem de processador, um idioma que o processador entende.”
Geralmente, programas em linux são encontrados em duas formas:
Código Fonte(Source Code): o código fonte é nada mais que arquivo(s) de texto(s) que necessita ser convertido para linguagem de processador; ou seja, código fonte não é legível para o processador.
Binário: Um código fonte compilado;
- Se você baixou um código fonte de um certo programa, para instalá-lo terá que compilar e só depois realizar a instalação do mesmo.
- Se você baixou o binário de um programa já estará com a faca e queijo em mãos, bastará apenas realizar a instalação. São exemplos de binários os arquivos: .jar, .deb, .rpm etc…
- Um Código Fonte(source code) pode ser convertido para binário por meio do uso de programas conhecidos como “compiladores” ou compiler( em inglês 🙂 ). O compilador mais conhecido, por nós, amantes linux, é o CCG, pertencente ao famoso e renomado Richard Stallman, do FSF(Free Software Foundation). O GCC(Gnu Compiler Collection) é na verdade uma coleção de compiladores, um pacote; nesse pacote há compilador para linguagens C, C++, Fortran etc… Visite a página oficial para maiores informações: https://gcc.gnu.org
Binários são específicos e customizados para certas plataformas ou Sistemas. Por exemplo,
Um Binário feito para ubuntu pode não ser executado no fedora;
Binário customizado para um processador PowerPC não será instalado para um computador com processador x86-64, mesmo os se dois computadores estiverem rodando linux.
Compilando um Código Fonte
Fazendo Download do Código Fonte
- Iremos baixar o source code para instalar o editor de texto nano. Se desejar realiar o procedimento com outro código fonte pode encontrar pesquisar em https://sourceforge.net, http://freshmeat.net ou no site oficial do referido programa que esteja procurando.
- O diretório /usr/src serve como local para guardar os códigos fontes. src é abreviação de source. Acesse o diretório usando o comando cd.
[elder@centos ~]$ cd /usr/src
- Utilize o wget para baixar o source code do nano. (w = web, get = pegar).
[elder@centos src]$ wget https://www.nano-editor.org/dist/v2.8/nano-2.8.7.tar.gz
O link acima peguei do site oficial do nano: https://www.nano-editor.org/download.php
- O arquivo foi salvo na pasta atual, em /usr/src e se trata de um arquivo empacotado(Um arquivo que contém vários arquivos) e comprimido(com tamanho reduzido). Use o tar para extrair os arquivos:
[elder@centos src]$ sudo tar xvf nano-2.8.7.tar.gz
- Foi gerada a pasta nano-2.8.7 contendo o conteúdo extraído do tarball(Arquivos criados com o comando tar) . Acesse a pasta com o comando cd.
[elder@centos src]$ cd nano-2.8.7
- Liste os arquivos do diretório com o comando ls
[elder@centos nano-2.8.7]$ ls ABOUT-NLS config.guess depcomp Makefile.in README.GIT aclocal.m4 config.h.in doc missing src ar-lib config.rpath IMPROVEMENTS mkinstalldirs syntax AUTHORS config.sub INSTALL nano.spec THANKS ChangeLog configure install-sh nano.spec.in TODO ChangeLog.1999-2006 configure.ac lib NEWS ChangeLog.2007-2015 COPYING m4 po compile COPYING.DOC Makefile.am README
Marquei de vermelho alguns arquivos importantes e comuns em todos códigos fontes:
ChangeLog: Contém um histórico de alterações no software
COPYING: Licença de uso
NEWS: Outro texto contendo um histórico das alterações. Porém com um texto menos técnico que o COPYING
README: Documentação Geral
INSTALL: Instruções de instalaçõesSe tiver dificuldade para ler textos em inglês use o google translator. Os arquivos README e INSTALL são muitos importantes para a instalação, contendo informações importantes e ou pertinentes apenas a este código fonte.
./configure Preparando o Terreno
“./Configure prepara o terreno para a instalação.”
Dentro do diretório extraído, geralmente, existe o script configure que faz ajustes específicos para o seu computador e realiza checagem em busca de bibliotecas e ferramentas úteis. Você pode executar esse script sem parâmetro, da seguinte forma:
./configure
ou pode especificar junto com um dos seguintes parâmetros abaixo:
./configure help = Exibe uma tela de ajuda com algumas opções;
./configure quiet = Exibe menos informações enquanto o script é executado;
./configure prefix=diretório = Instala o programa no diretório especificado;
./configure enable-debug=XXX = Habilita ou Desabilita debug(Procura de Erros) durante a instalação. o XXX pode ser substituído por: ARG(significa yes/sim), no(significa não 🙂 ) e full(Significa uma debug completo)
./configure disable-debug = Desabilita o debug;
- Execute o script “configure”. :
[elder@centos nano-2.8.7]$ sudo ./configure
Obs.: Digite “./” antes do nome do arquivo para dizer ao sistema que você se refere ao arquivo configure do diretório atual. Utilize o sudo se seu usuário não tiver permissão.“Nem todo Software contém o script configure. Consulte a documentação!”
Make Compilando
Agora que o configure preparou o terreno sem erros, iremos realizar a compilação; para isso utilizaremos o comando make(fazer).
“O make printa na tela mensagens de warning(alerta), não se preocupe, isso é normal, significa que o criador do código fonte usou algum comando que poderá não ser suportado no futuro ou que poderia deixar seu linux um pouco vunerável. 🙂 “
- Faça a compilação com o comando make, use o sudo para evitar problemas de permissões:
[elder@centos nano-2.8.7]$ sudo make
make install Instalando o Programa
Uma vez que tenha compilado nos resta a instalação. Geralmente o programa instalado será armazenado em /usr/local.
“Nem todo código fonte oferece um install para o make. Às vezes, você terá que usar o comando cp para copiar manualmente os arquivos e diretórios para o destino correto. Consulte a documentação do código fonte!.”
Antes de executar o make install, é bom conhecermos alguns parâmetros dele:
-b ou backup = cria um backup de cada arquivo que exista no destino durante a cópia.
-g GRUPO ou group=GRUPO = altera o grupo dos arquivos instalados para GRUPO.
-o PROPRIETARIO ou owner=PROPRIETARIO = altera o proprietário dos arquivos instalados para PROPRIETARIO.
-v ou verbose = Exibe o nome de todos os arquivos e diretórios enquanto eles são copiados.
- Execute make install para realizarmos a instalação do nano.
[elder@centos nano-2.8.7]$ sudo make install
Como remover um programa Compilado?
Temos um artigo muito bom falando sobre isso.
Veja: Como Desinstalar um Programa Compilado?
Conclusão
Pronto, seu programa foi instalado por meio da compilação. A vida antigamente não era nada fácil, tínhamos que compilar muito e sofrer com os erros de dependências que faltavam, hoje está tudo mais fácil e é muito mais comum encontrarmos os binários já prontos para a instalação.
Espero que tenham gostado, Até a próxima!!!
Siga-nos em nossas redes:
Link Facebook: https://www.facebook.com/gnulinuxbr
Excelente artigo Elder, parabéns!
Gostei muito do seu post, vou acompanhar o blog.
Muito bom ter você aqui, Francisco!
Olá aqui é a Selma Lima, eu gostei muito do seu artigo seu conteúdo vem me ajudando bastante, muito obrigada.
Selma, desculpa pela demora em respondermos. Ficamos muito felizes pelo seu feedback.
Olá! Gostaria de saber como instalar manualmente as bibliotecas que são dependências do código fonte? Como compilá-las? Onde ficam instaladas? Gostaria de fazer tudo do zero para eu aprender Linux, sem apt-get. Obrigado!
Tudo bem Ítalo?
Geralmente, todo programa a ser compilado possui arquivos de ajuda, como o README e outros citados no post. Esses arquivos de ajuda cita quais programas(dependências) você terá que ter antes de compilar. Leia sempre esses arquivos de ajuda; pode usar o google translator para traduzi-los do inglês para português.
O que fazemos para instalar essas dependências, na maioria das vezes, é usar comandos como “apt install nome_programa” ou “yum install nome_programa” , por exemplo.