Instalando e gerenciando programas no Linux

Neste artigo falo sobre a estrutura seguida pelos programas distribuídos em código-fonte. Aprenderemos como gerenciar (instalar/remover) programas utilizando o GNU Make. De quebra ainda abordaremos os pacotes do Slack (.tgz) e Red Hat (.rpm).

[ Hits: 43.200 ]

Por: Joel Silva em 26/01/2004


Programas em código-fonte e .tgz



Programas em fontes


Seguindo a filosofia do próprio sistema Linux, a maioria de seus aplicativos vêm com código aberto. Grande parte dos programas que você pega na net com sufixo .tar.gz são somente os arquivos fonte, que vêm prontos pra ser compilados.

Uma compilação transforma as fontes em formatos binários, ou seja, que possam ser executados como um programa pelos usuários. Mas aí você pergunta, qual a vantagem da compilação de programas? Bem, ou o seu sistema pode precisar desse método (como no Slackware, na maioria das vezes) ou você pode incluir suportes adicionais (ou os dois). Isso contribui pra deixar o programa mais leve, ou sem funções que você não vai usar.

Depois de descompactar o arquivo .tar.gz, basta entrar no diretório dele e ler o arquivo README ou INSTALL (ou ambos) e obter mais instruções detalhadas de como instalar o programa. Veja teoricamente como funciona a compilação típica de um programa em Linux:

1. O configure


O programa vem com um script geralmente chamado de "configure". A função dele é saber quais componentes necessários que você tem para compilar o programa. Se você não tiver algum que seja essencial, o script vai ser interrompido e se você quiser realmente o programa, vai ter que conseguir esse componente necessário. Outros são opcionais, e não vão interromper.

Se tudo der certo, esse script criará um arquivo (ou vários) chamado Makefile, que contém os comandos de compilação. Você também pode incluir, se o programa permitir, parâmetros especiais com o configure quando você quer suporte específico para alguma coisa.

2. O GNU Make


O Make somente funcionará se você tiver um arquivo Makefile (que o configure criou) no diretório atual, que têm as instruções e os comandos para a compilação do programa. Então, para continuar, basta digitar "make" na linha de comando para iniciar a compilação.

Note que você deve ter o programa make instalado. Ele vem em todas as distribuições Linux.

3. O make install


Depois do programa ter compilado, os binários executáveis ficarão armazenados no diretório que você descompactou os fontes. Para instalar o programa em locais mais adequados do computador, usa-se novamente o GNU Make acrescentado da opção "install" - "make install". E pronto! O programa já estará instalado e pronto pra ser usado.

Essa é a teoria geral para a maioria dos programas, mas SEMPRE leia o arquivo README, porque o programa pode precisar de opções especiais ou outros procedimentos alternativos. Veja um resumo de como se procede geralmente:

$ tar zxvf arquivo.tar.gz (para descompactar)
$ cd diretorio.que.o.arquivo.criou
$ ./configure
(o . é necessário para simbolizar o diretório atual)
$ make
# make install


(sempre tenha certeza de que erros não ocorreram)

DICA: Se você desejar desinstalar um programa instalado a partir de um comando "make install", não se desespere que tem solução. Basta ir no diretório das fontes e digitar "make uninstall". Para dar certo, os arquivos Makefile tem que existir, o que implica que o configure deve ser executado.

OBS: Os programas também podem vir em .tar.gz, mas pré-compilados. Um bom exemplo desse tipo de empacotamento são os pacotes do Linux Slackware, em formato .tgz (na verdade .tgz é exatamente a mesma coisa que .tar.gz).

Para instalar um pacote no Slackware, basta colocar o pacote na raiz (/) do sistema, e digitar o comando de descompactamento. Cada componente vai para o seu devido lugar. Uma alternativa também seria usar o pkgtool do Slackware (digite pkgtool na linha de comando).

    Próxima página

Páginas do artigo
   1. Programas em código-fonte e .tgz
   2. Como instalar, usar e gerenciar programas RPM
Outros artigos deste autor

Instalando o Slackware com suporte HT - SMP

Slackware 13 com Samba PDC completo

Blockmail: um filtro de anexos de e-mail

Leitura recomendada

Montando partições automaticamente

Trabalhando com boot duplo ou múltiplo: estação para testes de sistemas operacionais

Usando Sistema de Arquivos BTRFS - Subvolumes, Snapshots e Compactação

Recuperando arquivos em um Windows corrompido com Linux

PersonalBackup - Ferramenta de backup via web

  
Comentários
[1] Comentário enviado por adaoraul em 26/01/2004 - 19:09h

Vale tb lembrar da ferramenta "checkinstall" pois alem de instalar o source com "make install", a ferramenta cria um pacote para voce poder desinstalar o programa mais tarde...

[2] Comentário enviado por jllucca em 26/01/2004 - 20:06h

Na parte de gerencia pra complementar, como foi visto no simulado, muita gente errou(eu to nesse grupo) sobre a melhor forma de instalar um pacote RPM. A melhor forma é usando a flag "-Uvh", pois se ele não existir ele instala e se existir atualiza.

Outra coisa que andei notando, se executarmos um "make install" sem antes termos feito um "make" o proprio GNU Make irá chamar ele sem parametros para depois instalar. Assim, pode ser uma ideia interressante começar a "poupar" caracteres.

[3] Comentário enviado por removido em 26/01/2004 - 22:21h

Eu instalei o cl9 edição especial da Revista do Linux. Ele veio meio 'cortado', algumas bibliotecas não vieram nos 2 cds. Eu atualizei através do apt-get, instalei o gcc e o glib, mas sempre q eu dou um ./configure dá erro e falta um monte de pacotes.....O q mais eu deveria instalar?

[4] Comentário enviado por eluan em 27/01/2004 - 18:39h

Instalar pacotes slackware descompactando na raiz nao eh tao bom, jah q tem um diretorio install-sh em cada package q tem algumas instrucoes pra instalar corretamento o programa, a melhor forma eh usando o pkgtool q da menos trabalho, nao precisa executar os script e dps excluir o install-sh

E nem todos os programas vem com o target "make uninstall"


[5] Comentário enviado por butters em 28/01/2004 - 09:20h

OK. Agradeço os comentários e sugestões, e com certeza vou implementar na minha matéria.

Mas podem ir comentando e perguntando que tentarei responder o mais breve possivel.

[6] Comentário enviado por TylerD em 06/03/2004 - 01:23h

Instalar programas no linux foi a primeira grande barreira que passei, hehehe...

[7] Comentário enviado por butters em 06/03/2004 - 08:51h

Isso é normal

[8] Comentário enviado por poderosa em 03/06/2004 - 18:46h

Poxa !!! fiz tudo o que esta escrito nesse artigo e nao consegui instalar.
A distribuicao que uso e red hat 8 gostaria muito que alguem me ajudasse.

Sou uma usuaria nossa no S.O linux .....Muito obrigada deste ja

[9] Comentário enviado por poderosa em 03/06/2004 - 18:52h

Poxa !!! fiz tudo o que esta escrito nesse artigo e nao consegui instalar.
A distribuicao que uso e red hat 8 gostaria muito que alguem me ajudasse.

Sou uma usuaria nova no S.O linux .....Muito obrigada deste ja

[10] Comentário enviado por thelinux em 23/03/2006 - 09:19h

Ao usar apenas make install não será possível ver os erros que são visto no make. É isso.

[11] Comentário enviado por mattuba em 22/11/2006 - 13:08h

olá bom olha o q eu fiz e olha o q deu:
eu fui no terminal do root e escrevi:rpm ivh LimeWireLinux.rpm
ai olha q q deu:[root@localhost kennex]# rpm ivh LimeWireLinux.rpm
RPM verso 4.3.1
Copyright (C) 1998-2002 - Red Hat, Inc.
This program may be freely redistributed under the terms of the GNU GPL

Utilização: rpm [-aKfgpqV] [-aKfgpqVcdils] [-aKfgpqVcdilsaKfgpqV] [-aKfgpqVcdilsaKfgpqV] [-aKfgpqVcdilsaKfgpqVK] [-aKfgpqVcdilsaKfgpqVK] [-aKfgpqVcdilsaKfgpqVKi] [-aKfgpqVcdilsaKfgpqVKiv] [-aKfgpqVcdilsaKfgpqVKiv] [-aKfgpqVcdilsaKfgpqVKiv?] [-a|--all] [-f|--file] [-g|--group]
[-p|--package] [--specfile] [--whatrequires] [--whatprovides]
[-c|--configfiles] [-d|--docfiles] [--dump] [-l|--list]
[--queryformat=QUERYFORMAT] [-s|--state] [--nomd5] [--nofiles]
[--nodeps] [--noscript] [--addsign] [-K|--checksig] [--import]
[--resign] [--nodigest] [--nosignature] [--initdb] [--rebuilddb]
[--aid] [--allfiles] [--allmatches] [--badreloc]
[-e|--erase <pacote>+] [--excludedocs] [--excludepath=<caminho>]
[--force] [-F|--freshen <pacote>+] [-h|--hash] [--ignorearch]
[--ignoreos] [--ignoresize] [-i|--install] [--justdb] [--nodeps]
[--nomd5] [--nocontexts] [--noorder] [--nosuggest] [--noscripts]
[--notriggers] [--oldpackage] [--percent] [--prefix=<dir>]
[--relocate=<velho>=<novo>] [--repackage] [--replacefiles]
[--replacepkgs] [--test] [-U|--upgrade <pacote>+]
[-D|--define 'MACRO EXPR'] [-E|--eval 'EXPR'] [--macros=<FILE:...>]
[--nodigest] [--nosignature] [--rcfile=<FILE:...>] [-r|--root ROOT]
[--querytags] [--showrc] [--quiet] [-v|--verbose] [--version]
[-?|--help] [--usage] [--scripts] [--setperms] [--setugids]
[--conflicts] [--obsoletes] [--provides] [--requires] [--info]
[--changelog] [--triggers] [--last] [--filesbypkg] [--fileclass]
[--filecolor] [--filecontext] [--fscontext] [--recontext]
[--fileprovide] [--filerequire] [--redhatprovides]
[--redhatrequires] [--buildpolicy=<policy>] [--with=<option>]
[--without=<option>]

se der me ensina passo-a-passo porque sou totalmente iniciante em linux
vlw

[12] Comentário enviado por Fred Galdino em 05/01/2007 - 14:14h

Pessoal, baixei o samba-3.0.4 para o Linux Suse, enviei o arquivo para o "/tmp/", descompactei usando o comando "tar zxvf arquivo.tar.gz". Segui os passos acima descritos mas no comando "make", ele da esse erro abaixo: O QUE EU POSSO FAZER? Obrigado pela atenção.

linux:/home/ocr/samba-3.0.4/source # make
Using FLAGS = -O -I./popt -Iinclude -I/home/ocr/samba-3.0.4/source/include -I/home/ocr/samba-3.0.4/source/ubiqx -I/home/ocr/samba-3.0.4/source/smbwrapper -I. -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -I/home/ocr/samba-3.0.4/source
LIBS = -lcrypt -lresolv -lnsl -ldl
LDSHFLAGS = -shared
LDFLAGS =
Compiling dynconfig.c
In file included from include/smb.h:1642,
from include/includes.h:782,
from dynconfig.c:21:
include/popt_common.h:25: error: array type has incomplete element type
include/popt_common.h:26: error: array type has incomplete element type
include/popt_common.h:27: error: array type has incomplete element type
include/popt_common.h:28: error: array type has incomplete element type
make: ** [dynconfig.o] Erro 1
linux:/home/ocr/samba-3.0.4/source #

[13] Comentário enviado por reginaldobarreto em 24/08/2007 - 02:23h

Gostei


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts