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.208 ]

Por: Joel Silva em 26/01/2004


Como instalar, usar e gerenciar programas RPM



Esta é hoje uma das mais avançadas tecnologias de empacotamento de arquivos em sistemas Linux. Se você usa Red Hat, sempre prefira os arquivos RPM (RedHat Package Manager) do que os .tar.gz de um mesmo programa, pois eles vão poupar muito trabalho.

Os arquivos RPM já vêm pré-compilados. Eles já vem com todos os suportes possíveis, mas isso não é uma grande desvantagem. O Red Hat é totalmente baseado nessa tecnologia, até a instalação dele é feita com os RPMs.

Para gerenciar esses arquivos, existem as ferramentas Glint (modo gráfico) e rpm (modo texto). Para instalar novos pacotes, acho mais prático o rpm texto, mas já no caso de fazer uma limpeza no sistema, o Glint certamente é melhor. Veja como instalar programas em rpm usando o modo texto:

# rpm -ivh arquivo.rpm
(instala um programa empacotado)

# rpm -Uvh arquivo.rpm
(instala um programa atualizando se existir uma versão anterior)

Veja como saber se tal programa que foi instalado com o RPM está em seu sistema Red Hat:

$ rpm -qa | grep palavra.chave

Exemplo: Quero saber se existe algum programa imlib no sistema. Mesmo sem saber a versão do programa, é possível saber se ele está instalado com uma palavra chave. Vou tentar "imlib".

$ ~/ rpm -qa | grep imlib
imlib-cfgeditor-1.9.4-1
imlib-1.9.4-1
imlib-devel-1.9.4-1

Esse foi o resultado que obtive. O imlib e alguns de seus componentes realmente estão instalados no computador.

Para desinstalar um pacote instalado:

# rpm -e pacote
(não é necessária nem a versão nem o sufixo rpm)

OBS: Note que não é necessário incluir a versão do programa, a não ser que duas versões estejam instaladas. Aí sim você vai dizer a versão para não confundir.

Existem também as opções --force ou --nodeps (geralmente as duas mais utilizadas):
  • --nodeps serve para forçar a instalação do programa, mesmo se ele precisar de outros para funcionar.
  • --force forca uma reinstalação, por exemplo.
Para usá-las, basta incluir a flag junto com o comando que você quer.

Exemplo: Você quer desinstalar o pacote, mas quando digita o comando "rpm -e pacote", o sistema informa que este programa é necessário para o funcionamento de mais alguns, mas você quer removê-lo de qualquer forma:

# rpm -e --nodeps pacote

Ou deseja reinstalar um pacote porque apagou um arquivo acidentalmente:

# rpm -ivh --force pacote.rpm

Página anterior    

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

Blockmail: um filtro de anexos de e-mail

Slackware 13 com Samba PDC completo

Instalando o Slackware com suporte HT - SMP

Leitura recomendada

GlusterFS - Um Sistema de Arquivos Distribuídos (parte 2)

Clone de HDs e backup de MBR

SSHFS no CentOS, Slackware e Windows - Simples e rápido

Transferência Rápida de Arquivos com NFS

Dm-crypt - Criptografia no filesystem - Kernel 2.6

  
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