Nesse post, vou falar sobre instalação de pacotes usando o apt – advanced package tool. O apt é um front-end para o dpkg e reúne um conjunto de ferramentas para gerenciar pacotes de uma forma automatizada. Isso quer dizer que, quando usamos o apt para instalar um programa, ele também instala ou atualiza as dependências de todos pacotes necessários para o funcionamento do programa.
Assim como o dpkg, o apt trabalha em linha de comando, mas não assusta: conhecendo ele, fica fácil de usar
!
Podemos instalar pacotes pelo apt usando o CD de instalação ou pela Internet, através de repositórios ftp ou http, que são configurados no arquivo /etc/apt/sources.list.
Vamos entender como o arquivo sources.list trabalha. Ele contém os locais onde o apt irá buscar os pacotes e a distribuição utilizada. E falando sobre distribuição, temos:
stable – é a versão atual totalmente homologada pela equipe do Debian. O codinome da versão stable atual do Debian é Lenny.
testing – é a próxima versão do Debian que está sendo testada para se tornar stable. O codinome da versão testing atualmente é Squeeze.
unstable – versão em constante desenvolvimento; pacotes nessa versão podem conter bugs ou falhas de segurança. O codinome da versão unstable é Sid.
O arquivo sources.list possui a seguinte estrutura:
deb uri distribuição componente
Onde:
deb - Indica um pacote Debian; pode ser deb (pacote pré-compilado) ou deb-src (código fonte).
uri – Indica o endereço do repositório dos pacotes, que pode ser http ou ftp
distribuição – versão do Debian, que pode ser stable, testing ou unstable.
componente – seção da licença que será verificada no site remoto. Pode ser main (contém apenas softwares livres, de acordo com a DFSG – Debian Free Software Guidelines), contrib (contém software livre que depende de software proprietário) ou non-free (contém software de código fechado ou que não se enquadra na DFSG).
Um exemplo básico de repositório válido para o sources.list se encontra abaixo:
[1] deb http://http.us.debian.org/debian stable main contrib non-free
[2] deb http://security.debian.org stable/updates main contrib non-free
Com o repositório [1], temos acesso a pacotes pré-compilados (deb) no servidor http://http.us.debian.org/debian, da versão stable e que contenham qualquer tipo de licença (main, contrib ou non-free). A linha [2] temos acesso ao repositório de atualizações de segurança para a versão stable.
Para adicionar o CD como mirror, colocamos o cd 1 no driver e executamos o comando apt-cdrom:
# apt-cdrom add
Este comando adiciona automaticamente uma linha para cada CD no arquivo /etc/apt/sources.list; quando for instalar um novo programa, o apt irá solicitar que o CD correspondente seja inserido na unidade e pressionado <Enter> para continuar.
Após adicionar o mirror, seja para baixar pacotes pela Internet ou pelo CD, vamos atualizar a lista de pacotes do apt. Para isso usamos o apt-get com a opção update:
# apt-get update
Com o comando acima, o apt irá criar uma lista de todos pacotes disponíveis no mirror, seja pela net ou pelo CD. É importante executar esse comando porque o apt usa essa lista de pacotes para verificar se esses precisam ou não ser atualizados; e cada vez que executamos o update, uma lista mais nova de pacotes é copiada.
Para instalar pacotes, usamos o apt-get com a opção install:
# apt-get install <nome_do_pacote>
Pode instalar mais de um pacote na mesma linha, separando os nomes por espaços; diferente do dpkg que pede o nome do .deb completo (com a versão e revisão). Caso existam dependências, o apt irá instalar automaticamente; se for necessário instalar pacotes além do pedido pelo usuário, o apt mostra o espaço em disco que será usado e pergunta ao usuário se ele deseja continuar. Caso a resposta seja negativa, a instalação é abortada.
Como exemplo, vamos instalar o vlock, que é um programa para bloquear terminais em modo texto:
# apt-get install vlock
Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
Os NOVOS pacotes a seguir serão instalados:
vlock
0 pacotes atualizados, 1 pacotes novos instalados, 0 a serem removidos e 9 não atualizados.
É preciso baixar 38,1kB de arquivos.
Depois desta operação, 221kB adicionais de espaço em disco serão usados.
Obter:1 http://ftp.debian.org stable/main vlock 2.2.2-3 [38,1kB]
Baixados 38,1kB em 5s (7459B/s)
Selecionando pacote previamente não selecionado vlock.
(Lendo banco de dados … 20701 arquivos e diretórios atualmente instalados).
Desempacotando vlock (de …/vlock_2.2.2-3_i386.deb) …
Processando gatilhos para man-db …
Configurando vlock (2.2.2-3) …
Agora, supondo que eu queira remover o pacote, o comando é praticamente o mesmo… basta trocar a opção install por remove:
# apt-get remove vlock
Lendo listas de pacotes… Pronto
Construindo árvore de dependências
Lendo informação de estado… Pronto
Os pacotes a seguir serão REMOVIDOS:
vlock
0 pacotes atualizados, 0 pacotes novos instalados, 1 a serem removidos e 9 não atualizados.
Depois desta operação, 221kB de espaço em disco serão liberados.
Você quer continuar [S/n]? s
(Lendo banco de dados … 20731 arquivos e diretórios atualmente instalados).
Removendo vlock …
Processando gatilhos para man-db …
O que coloquei acima, é o básico para se usar do apt! Mas existem outras opções interessantes para conhecer. Por exemplo, imagine que eu queira instalar um cliente de mensagem instantâne e não saiba o nome dele. Basta usar o comando apt-cache para localizar o pacote!
# apt-cache search msn
emesene – platform independent MSN Messenger client
kopete – instant messenger for KDE
licq-plugin-msn – MSN plug-in for Licq
centerim – um cliente de mensagens instantâneas multiprotocolo em modo texto
amsn – um mensageiro MSN escrito em Tcl
pidgin – graphical multi-protocol instant messaging client for X
Acima, pedi para localizar pacotes que contenham msn… vejam além do nome do pacote, também tem uma breve descrição do que o pacote faz. Ai, basta eu usar a lista para localizar o pacote que quero instalar.
Agora, caso deseje fazer uma atualização dos pacotes instalados, bastam dois comandos:
# apt-get update
# apt-get upgrade
O update é necessário para atualizar a lista de pacotes dos repositórios que estão cadastrados no sources.list. E a opção upgrade é quem vai atualizar os pacotes já instalados no sistema. Lembrando que, se estiver usando o CD como seu repositório, a opção upgrade não atualiza nada; afinal de contas sempre serão os mesmos pacotes.
Se você tiver acesso a Internet, é preferível comentar as linhas referentes ao CD. Linhas iniciadas com “#” no sources.list, são ignoradas. E não esqueça de, após comentar o arquivo, executar novamente o update para atualizar a lista de pacotes.
Ainda falando sobre atualização, se quero atualizar um Debian que esteja utilizando a versão Etch (4), para a versão mais nova – Lenny (5), basta editar o sources.list:
deb http://http.us.debian.org/debian lenny main contrib non-free
deb http://security.debian.org lenny/updates main contrib non-free
Após fazer a alteração, basta executar o update:
# apt-get update
E em seguida, usar o dist-upgrade para atualizar a distro:
# apt-get dist-upgrade
Agora, para encerrar sobre o apt… quando instalamos pacotes via apt, os .deb são guardados no diretório /var/cache/apt/archives. Dependendo de quantos programas você instala, ou atualiza, esses .deb vão ocupando espaço no HD… então, para fazer uma limpeza, basta usar a opção clean do apt-get:
# apt-get clean
Esse comando limpa o diretório /var/cache/apt/archives e libera mais espaço no HD.
Para conhecer mais sobre o apt:
# man apt
Até o próximo post!