Linux slogan
Visite também: BR-Linux.org · Dicas-L · NoticiasLinux · SoftwareLivre.org · UnderLinux · BestLinux



» Screenshot
Linux: GNU OCTAVE
Por chemonz
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha

» Wallpaper
Linux: FyreLinux
Por rrafael


Artigo

Instalando e gerenciando programas no Linux
Linux user
butters
26/01/2004
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).
Por: Joel Silva
[ Hits: 27184 ]
Conceito: 8.9   4 voto(s)4 voto(s)4 voto(s)4 voto(s)4 voto(s) + quero dar nota ao artigo

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

Leitura recomendada

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 jeancv 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
  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Copyleft 2002-2009 Viva o Linux.com.br

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.