Sei sulla pagina 1di 7

Informações iniciais

Muitos usuários recém chegados no mundo Linux deparam-se com esse problema ao
desejarem instalar determinado software que não vem por padrão na distribuição usada
e ao fazer o download do arquivo, encontram um .tar.gz.

Ao longo desse artigo irei mostrar como não existe nada de complicado nessa tarefa.

Pacotes do tipo .tar.gz ou .tar.bz2 contém os fontes do programa prontos para


compilação (transformar os fontes em executáveis).
Sua instalação não depende da distribuição usada.
O .tar significa que dentro desse arquivo existem outros arquivos e sub-pastas e
o .gz ou .bz2 é o tipo de compactação que foi usada na criação do pacote.

Botando a mão na massa

Para exemplo prático iremos instalar a versão mais recente do Mplayer, player de vídeo
bastante usando no universo do software livre. Caso sua distribuição já tenha o
programa instalado por padrão, não tem problema, instale-o de novo para efeito de
aprendizado.

Crie um diretório dentro da sua pasta de usuário (/home/seu_login). Por motivos


didáticos, daqui em diante vou me referir a esse diretório sempre por /home/usuário.

Baixe o arquivo (nesse caso é do tipo .tar.bz2) e salve-o em /home/usuário

http://superdownloads.ubbi.com.br/linux/download/i14.html

Agora que começa a brincadeira...

Abra uma janela de terminal (aquela janelinha geralmente de fundo preto usada para
executar comandos) e digite os seguintes comandos nessa ordem:

$ cd /home/usuário (entra no diretório onde está o pacote)


$ ls (só para você ver o pacote que você baixou)
$ tar - jxvf nome_do_pacote.tar.bz2

DICA: Digite as primeiras letras e tecle tab.

Explicação do último comando: para extrair os arquivos de um pacote .tar.bz2 usa-se o


comando listado acima, caso fosse um .tar.gz o comando seria bastante semelhante:

$ tar - zxvf nome_do_pacote.tar.gz

Ou seja, muda apenas em uma letra de "j" para "z" ou vice-versa. Recomendo que você
procure saber o que significa cada uma dessas letras, para isso use o comando:

$ man tar

Agora você pode notar que foi criado um novo diretório:


$ ls
$ cd nome_do_diretório_criado
$ ls

Está vendo um arquivo chamado "configure"? Segue explicação abaixo.

Como o nome já sugere, esse arquivo 'prepara' o Linux para instalar o programa,
checando dependências, entre outras coisas. Se encontrar problemas na etapa seguinte,
leia o INSTALL ou o README, eles informam tudo que você precisa ter e/ou fazer para
ter o programa funcionando perfeitamente.

$ ./configure

(o ./ significa que queremos executar esse arquivo)

OBS: Agora serão verificadas variáveis de ambiente e dependências de bibliotecas. Essa


etapa demora um pouco, caso o configure encontre algum erro, anote-o, vá no install e
veja se fala algo sobre.

$ make
$ make install (instala o programa no Linux)

Lista rápida de comandos:

tar -zxvf nome-do-arquivo.tar.gz - desempacota o arquivo de extensão .tar.gz;


tar -jxvf nome-do-arquivo.tar.bz2 - desempacota o arquivo de extensão
.tar.bz2.

Finalizando

Em alguns pacotes nem é preciso executar o trio configure-make-make install, pois ao


desempacotarmos com o 'tar' dentro da pasta já está o executável prontinho para ser
executado, ou então existe um arquivo de instalação próprio do programa, como é o
caso do OpenOffice. Tente instalá-lo para perceberem o que estou falando.

Bem pessoal, esse é meu primeiro artigo aqui no Viva o Linux, espero que eu tenha
ajudado vocês de alguma forma.

O Processo manual

Normalmente os fontes são encontrados compactados em formatos tar.gz ou tar.Z.


Vamos por a mão na massa, peguei o pacote squid-2_3STABLE1.tar.gz no site do
projeto. Descompactei os fontes em um diretório que eu criei para isso.

[root@blackcat / ] # cd /root/kanbisativa
[root@blackcat kanbisativa ] # ls
squid-2_3STABLE1.tar.gz
[root@blackcat kanbisativa ] # tar -zxvf squid-2_3STABLE1.tar.gz > tar.log
[root@blackcat kanbisativa ] cd squid-2_3STABLE1
[root@blackcat squid-2_3STABLE1] #
Podemos verificar o processo realizado pelo tar por meio do arquivo de log que eu
mandei criar (tar.log) usando o redirecionamento de saída.

Para dar continuidade verificaremos o arquivo readme ou install que sempre traz
instruções sobre a instalação.

[root@blackcat squid-2_3STABLE1] # cat INSTALL

To build and install the squid cache, type:


% ./configure -prefix=/usr/local/squid
% make all
% make install

To run a cache you will need to:

Blablablabla ( o restante não nos interessa agora).


Seguindo como nos foi indicado, vamos rodar o script configure passando como
argumento o local onde desejamos instalar a aplicação.
[root@blackcat squid-2_3STABLE1] # ./configure -prefix=/usr/local/squid
Basicamente o configure fará uma customização nos fonte para que esteja de acordo
para o sistema em que o compilaremos. As instruções indicam que o próximo passo
seria executar o comando make all. Este comando é utilizado para determinar, por meio
de um arquivo template, as partes de um programa maior que precisam ser
recompiladas e executar os comando necessários para tal. Para que possamos utilizar o
comando make é necessário criar um arquivo chamado makefile que descreve as
relações entre os arquivos do programa. O script que executamos já criou o arquivo
makefile personalizado para o nosso sistema, então vamos lá ..

[root@blackcat squid-2_3STABLE1] # make all > makeall.log


[root@blackcat squid-2_3STABLE1] #
Mais uma vez eu redirecionei as menssagens enviadas pelo make para um arquivo texto
para posterior verificação de erros. Caso você queira verificar o arquivo log (siga os
passos ai na sua casa e verifique o makeall.log), verá que o comando make executa
varias compilações de varias partes da aplicação em questão, por meio do gcc, o
compilador C/C++ da gnu. O arquivo INSTALL nos indicou que após o make all teríamos
que digitar o make install , que então instalará o nosso programa.

[root@blackcat squid-2_3STABLE1] # make install > makeinstall.log


[root@blackcat squid-2_3STABLE1] #
Prontinho .. o programa foi instalado com sucesso

Instalação dos pacotes.

Os conhecidos pacotes rpm foram criados pela Red Hat com a intenção de facilitar a
instalação dos programas no linux red hat. Vou aproveitar e dar uma explanada na
instalação Este documento é apenas uma inicialização, e para dominar o assunto sugiro
a leitura de alguns how to em www.tldp.org.

Para uma simples instalação dos pacotes utilizamos a flag -i

Exemplo:
[root@blackcat pacotes] # rpm -i squid-2.3.STABLE1-0.i386.rpm
2000/02/22 10:47:59 | Creating a Swap Directories
[root@blackcat pacotes] #
Neste exemplo instalamos o pacote squid- 2.3.STABLE1- 0.i386.rpm que é um servidor
proxy cache. O próprio servidor squid já instalado nos enviou uma mensagem
informando que estava criando sua estrutura de troca (Swap). Nesse ponto então o rpm
já havia feito seu papel e instalado o pacote sem maiores problemas.

Existem algumas opções de instalação que podem ser úteis. Vejamos

[root@blackcat pacotes] # rpm -i -percent squid-2.3.STABLE1-0.i386.rpm

% % 0.000000
% % 0.153335
% % 0. 950606
% % 1.367177
..
..
..
% % 100.000000
A opção -percent apresenta a porcentagem de instalação do pacote.

[root@blackcat pacotes] # rpm -ih squid-2.3.STABLE1-0.i386.rpm


################################
2000/02/22 10:47:59 | Creating a Swap Directories
[root@blackcat pacotes] #
A opção -h (hash) também é muito usada e apresenta um informativo gráfico da
instalação, eu acho melhor do que a -percent.

[root@blackcat pacotes] # rpm -ihv squid-2.3.STABLE1-0.i386.rpm


squid ################################
2000/02/22 10:47:59 | Creating a Swap Directories
[root@blackcat pacotes] #
A opção -v (verify) solicita ao rpm uma verificação de integridade dos arquivos
instalados , e também é muito utilizada.
[root@blackcat pacotes] # rpm -ihv ftp://serverx.domain.com/pub/squid-2.3.STABLE1-
0.i386.rpm
Retrieving ftp://serverx.domain.com/pub/squid-2.3.STABLE1-0.i386.rpm
Squid ################################
2000/02/22 10:47:59 | Creating a Swap Directories
[root@blackcat pacotes] #
No exemplo acima, podemos observar que é possível se informar sobre a localização de
pacotes em sites ftp ou http. Muito utilizado para atualização dos pacotes.

Antes do rpm instalar os pacotes ele faz algumas verificações, para não termos
problemas no futuro.

O rpm verificará se existe uma outra instalação anterior do mesmo pacote. Caso exista
e seja de uma versão anterior a que estamos tentando instalar deve-se usar a opção de
upgrade. Caso seja posterior o rpm só vai te deixar instalar o pacote quando a outra
versão for desinstalada do seu sistema (ocorreu comigo quando queria instalar o lilo
com suporte a imagens, tinha uma versão mais nova do pacote no meu sistema mais
ela não suportava imagens. Desinstalei a que já havia no sistema e instalei a que
aceitava imagens para satisfazer meu instinto estético (essa foi boa em??), é claro que
por sua conta e risco você pode forçar a instalação com o risco de quase 100% do
programa instalado não funcionar corretamente.
[root@blackcat pacotes] # rpm -ihv squid-2.3.STABLE1-0.i386.rpm
package squid-2.3.STABLE1-0 already installed
[root@blackcat pacotes] #

"As malditas dependências"

Ao serem construídos, aos pacotes é acrescentada um lista de dependências que são


verificadas na instalação. Caso qualquer uma das dependências não seja satisfeita é
enviada uma mensagem de erro informando e a instalação é cancelada, a não ser que
você force a instalação e .. sabe né !! eu não faria isso se gostasse do meu sistema.

[root@blackcat pacotes] # rpm -ihv squid-2.3.STABLE1-0.i386.rpm


failed dependencies
libm.so.6(GLIB_2.0) is needed by squid-2.3.STABLE1-0
libm.so.6(GLIB_2.1) is needed by squid-2.3.STABLE1-0
libc.so.6(GLIB_2.1) is needed by squid-2.3.STABLE1-0
libc.so.6(GLIB_2.0) is needed by squid-2.3.STABLE1-0
libcrypt.so.1(GLIB_2.0) is needed by squid-2.3.STABLE1-0
[root@blackcat pacotes] #
No exemplo acima então temos uma falha de dependências de vários arquivos. Isso
ocorre por que o pacote provavelmente foi criado para uma outra versão do sistema ou
para um sistema mais atualizado. Para forçar o rpm a instalar assim mesmo utilizamos
a denegrida e maléfica opção -force ou -nodeps respectivamente. Vc pode buscar os
arquivos de dependências no site da sua distribuição ou em www.rpmfind.net (o maior
repositório de pacotes rpm do mundo), lembre-se de procurar a versão exata ou
próxima !!

Atualizando os pacotes -Upgrade

A atualização é muito fácil, basta substituir a opção -i de instalação pela -U mantendo-


se as mesmas opções.

A grande maioria das pessoas preferem utilizar esta flag pois caso o pacote a ser
instalado já exista em uma versão anterior o rpm atualiza ele. Mas caso ele não exista o
rpm o instala automaticamente.

[root@blackcat pacotes] # rpm -Uhv squid-2.3.STABLE1-0.i386.rpm


squid ################################
2000/02/22 10:47:59 | Creating a Swap Directories
[root@blackcat pacotes] #

Obtenção de informações.

O rpm armazena as informações sobre os pacotes, como arquivos que o compõe, nome
e versão do pacote e outras informações úteis como nome de guerra, opção sexual, em
qual bordel o pacote foi construído etc (brincadeira viu .. é capaz de alguém acreditar
hehe).

Vamos para a parte mais legal . (poderia dizer que para pesquisar os pacotes vc deveria
digitar como root um unalias rm e depois rm -R *.*, mas como sou um cara bonzinho
não vou apagar seus dados huaaa)

Agora é serio. A flag a ser utilizada para acessar o banco de dados dos rpm é a -q de
query seguida de alguma opção. Você com certeza irá utilizar essa flag com muita
freqüência, pois como veremos adiante para desinstalar um pacote terá que saber seu
nome inteiro, então vamos lá ..

[root@blackcat pacotes] # rpm -qa


Lista gigantesca dos rpm's instalados.

No exemplo acima temos a opção -q de query e "a" (all) que lista todos os pacotes
instalados.

[root@blackcat pacotes] # rpm -qf /etc/cron.d


vixie-cron-3.0.1-39
[root@blackcat pacotes] #
No caso acima verificamos com a opção -f (file) para informar a qual pacote instalado
pertence tal arquivo. Verificamos que o arquivo /etc/cron.d pertence ao arquivo vixie-
cron-3.0.1-39

[root@blackcat pacotes] # rpm -ql zip-2.2-1


No exemplo exposto acima utilizamos a opção l (listing) para listar todos que fazem
parte de um determinado pacote instalado. Podemos fazer o mesmo para um pacote
ainda não instalado, utilizamos a opção "p" (Package_File) antes da opção "l" conforma
abaixo

[root@blackcat pacotes] # rpm -qpl imap-4.4.2.i386.rpm


Bem como já disse essas opções de consulta iriam nos auxiliar na hora de desinstalar os
pacotes.. vamos ver como ??

Desinstalação de Pacotes.

A desinstalação de pacotes é o procedimento mais fácil do rpm. Para desinstalarmos um


pacote temos que ter seu nome exato. Como você já dever saber (por que eu já
escrevi) procuramos os pacotes com a flag "-qa" de query seguida do "a" para listar
todos os pacotes. Existe um comando auxiliar muito utilizado no linux, se você
realmente enche a boca pra dizer para aqueles amigos do irc que está rodando o linux
tem que conhecer o "grep", se você não sabe o que é irc ..hehe se mata (to brincando
de novo em .. não quero ser processado por tentativa de homicídio). Procure aprender
sobre o grep (man grep), mas uma definição bem simplória sobre ele é a de filtro de
informações.

Exemplo: Digamos que eu instalei o licq na minha maquina e gostaria de remove-lo. Eu


não sei a versão do do licq que está instalada na minha maquina .. veja como é fácil
[root@blackcat pacotes] # rpm -qa | grep licq
licq-1.20a
[root@blackcat pacotes] #
Como dizia jack o estripador "vamos por partes"..

O rpm -qa listou todos os pacotes instalados, o pipe "|" pega a saida de um programa e
joga na entrada do outro. Como o grep filtra pacotes pedi para ele me filtrar todos as
entradas que continham licq e ele me encontrou o pacote "licq-1.20a"
Para desisntalar devemos utilizar a flag "-e" assim
[root@blackcat pacotes] # rpm -e licq-1.20a
[root@blackcat pacotes] #
Você pode perceber que o rpm não nos passou nenhuma mensagem, e isso quer dizer
que ele desinstalou o pacote.

Potrebbero piacerti anche