Você está na página 1de 17

Gerenciamento de Pacotes no Ubuntu/Debian

Salviano A. Leão

21/12/2013

Sumário
1 Introdução 1

2 As regras do jogo: Termos usados 2


2.1 O que realmente são os pacotes? . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.2 Dependências . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
2.3 Repositórios . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

3 Gerenciando pacotes 5
3.0.1 Central de Programas do Ubuntu Linux . . . . . . . . . . . . . . . . . . 5

4 Gerenciamento de Pacotes 6

5 uso do apt 7
5.1 Funções do APT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

6 Uso do apt-get 9

7 Pacotes fontes 12

8 O gerenciador de pacotes aptitude 14

9 Diferença entre o apt-get e o aptitude 14

10 Obter as dependências de um pacote 16

11 Reconstruindo um pacote através do fonte 17

1 Introdução
Nos primórdios do sistema GNU/Linux, a distribuição de programa dava-se por meio de “pacotes”
compactados do tipo .tar.gz. Os usuários tinham de gastar um bom tempo para compilar cada
programa usado em seu sistema GNU/Linux, ou outro qualquer. Quando o Debian foi criado,
sentiu-se a necessidade de um sistema de gerenciamento de pacotes instalados no sistema. Deu-se
a esse sistema o nome de “dpkg”. Assim surgiu o famoso “pacote”. Logo após a Red Hat resolveu
criar seu conhecido sistema de gerenciamento de pacotes o “Red Hat Package Manager” o famoso
“rpm”.

1
Rapidamente outro dilema tomou conta das mentes dos produtores de GNU/Linux. Uma
maneira rápida, prática e eficiente de se instalar pacotes, gerenciando suas dependências
automaticamente e tomando conta de seus arquivos de configuração ao atualizar. Assim, o
Debian, novamente pioneiro, criou o “APT” ou “Advanced Packaging Tool”, hoje incorporado
por algumas outras distribuições, entre elas o Ubuntu.

2 As regras do jogo: Termos usados


A seguir antes de prosseguir com esse tutorial, serão esclarecidos alguns termos que irão surgir
posteriormente.

2.1 O que realmente são os pacotes?


Quando baixamos e instalamos um programa mais complexo, como a suíte de escritório Libre-
Office, por exemplo, estamos manipulando diversos arquivos que são armazenados em partes
específicas do sistema. Executáveis, bibliotecas, imagens e documentos são apenas alguns
exemplos do que compõem um software.
Para facilitar o gerenciamento disso tudo, o Ubuntu Linux e outras distros trabalham com
o conceito de pacotes, ou seja, um grande arquivo que contém não apenas os componentes
necessários para executar o programa, mas também scripts de instalação e metadados.
Os pacotes que já possuem o software compilado, isso é, pronto para ser executado em
determinadas distros e arquitetura de computador, são chamados de pacotes binários. Em
contrapartida, também existem os pacotes source, ou seja, que possuem os arquivos com o
código-fonte do software e, com os devidos procedimentos de compilação, podem ser executados
em qualquer máquina com o Ubuntu Linux.

2.2 Dependências
Muitos softwares fazem uso de bibliotecas que também são acessadas por outros programas.
Dessa forma, em vez de cada programa trazer sua própria versão daquela biblioteca, tudo é
empacotado independentemente. Isso evita redundância de esforço e também diminui o risco
de que desenvolvedores forcem certas personalizações na biblioteca compartilhada e acabem
causando incompatibilidade com outros programas.
Por isso, é comum ver avisos do sistema informando ao usuário que, para determinado
software ser instalado, será necessário instalar pacotes adicionais. Felizmente, hoje esse tipo de
procedimento é realizado de maneira automática e o usuário só precisa concordar com a ação a
ser tomada. Além disso, esse procedimento permite que seu sistema economize espaço em disco.

2.3 Repositórios
Podem ser alterados, mudando o endereço, geralmente cada distribuição tem sua própria
lista de repositórios, que inclui mídias (CD e/ou DVD) e/ou servidores na internet. Pode-se
utilizar repositórios de outras distribuições, porém, com cuidado, pois pode haver alguma
incompatibilidade entre as versões utilizadas.
São chamados de repositórios de uma dada distribuição, os diversos servidores que armazenam
os novos pacotes daquela distribuição. Em geral as máquinas desktop consultam para saber se
houve a atualização e/ou adição de algum pacote, emitindo no final da consulta uma mensagem
de aviso ao usuário. Pode-se configurar o sistema para que ocorram atualizações automáticas,
mas isso, não é recomendável.

2
Toda distribuição GNU/Linux baseada no Debian, possui um arquivo /etc/apt/sources.list
o qual contém os repositórios padrão da sua distribuição. Esse arquivo em geral tem a seguinte
forma:
# deb cdrom:[Ubuntu 14.04 LTS _Trusty Tahr_ - Release amd64 (20140417)]/ trusty main
,→ restricted

# See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to


# newer versions of the distribution.
deb http://br.archive.ubuntu.com/ubuntu/ trusty main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ trusty main restricted

## Major bug fix updates produced after the final release of the
## distribution.
deb http://br.archive.ubuntu.com/ubuntu/ trusty-updates main restricted
deb-src http://br.archive.ubuntu.com/ubuntu/ trusty-updates main restricted

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu


## team. Also, please note that software in universe WILL NOT receive any
## review or updates from the Ubuntu security team.
deb http://br.archive.ubuntu.com/ubuntu/ trusty universe
deb-src http://br.archive.ubuntu.com/ubuntu/ trusty universe
deb http://br.archive.ubuntu.com/ubuntu/ trusty-updates universe
deb-src http://br.archive.ubuntu.com/ubuntu/ trusty-updates universe

## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu


## team, and may not be under a free licence. Please satisfy yourself as to
## your rights to use the software. Also, please note that software in
## multiverse WILL NOT receive any review or updates from the Ubuntu
## security team.
deb http://br.archive.ubuntu.com/ubuntu/ trusty multiverse
deb-src http://br.archive.ubuntu.com/ubuntu/ trusty multiverse
deb http://br.archive.ubuntu.com/ubuntu/ trusty-updates multiverse
deb-src http://br.archive.ubuntu.com/ubuntu/ trusty-updates multiverse

## N.B. software from this repository may not have been tested as
## extensively as that contained in the main release, although it includes
## newer versions of some applications which may provide useful features.
## Also, please note that software in backports WILL NOT receive any review
## or updates from the Ubuntu security team.

deb http://security.ubuntu.com/ubuntu trusty-security main restricted


deb-src http://security.ubuntu.com/ubuntu trusty-security main restricted
deb http://security.ubuntu.com/ubuntu trusty-security universe
deb-src http://security.ubuntu.com/ubuntu trusty-security universe
deb http://security.ubuntu.com/ubuntu trusty-security multiverse
deb-src http://security.ubuntu.com/ubuntu trusty-security multiverse

## Uncomment the following two lines to add software from Canonical's


## 'partner' repository.
## This software is not part of Ubuntu, but is offered by Canonical and the
## respective vendors as a service to Ubuntu users.
deb http://archive.canonical.com/ubuntu trusty partner
deb-src http://archive.canonical.com/ubuntu trusty partner

## This software is not part of Ubuntu, but is offered by third-party


## developers who want to ship their latest software.

3
deb http://extras.ubuntu.com/ubuntu trusty main
deb-src http://extras.ubuntu.com/ubuntu trusty main
deb http://br.archive.ubuntu.com/ubuntu/ trusty-backports universe multiverse main
,→ restricted

#distribuição do abntex2
deb http://distrib.abntex2.googlecode.com/hg/debian/ testing main
deb-src http://distrib.abntex2.googlecode.com/hg/debian/ testing main

São desses endereços da internet que o seu sistema irá fazer um download dos softwares
selecionados para em seguida instalar os mesmos. Ao fazer o download dos softwares o sistema
guarda eles no diretório /var/cache/apt/archives/
Atualmente tem havido pequenas variações de distribuição para distribuição, sendo que
atualmente há um diretório chamado /etc/apt/sources.list.d o qual contém um arquivo
.list para cada repositório específico. Por exemplo, atualmente na distribuição LinuxMint o
arquivo /etc/apt/sources.list está vazio e os repositórios oficiais da distribuição encontram-
se no arquivo

/etc/apt/sources.list.d/official-package-repositories.list

cujo o conteúdo é seguinte:

deb http://mirror.jmu.edu/pub/linuxmint/packages sarah main upstream import backport

deb http://ubuntu.laps.ufpa.br/ubuntu xenial main restricted universe multiverse


deb http://ubuntu.laps.ufpa.br/ubuntu xenial-updates main restricted universe
,→ multiverse
deb http://ubuntu.laps.ufpa.br/ubuntu xenial-backports main restricted universe
,→ multiverse

deb http://security.ubuntu.com/ubuntu/ xenial-security main restricted universe


,→ multiverse
deb http://archive.canonical.com/ubuntu/ xenial partner

Após adicionar uma repositório, deve-se atualizar o banco de dados de softwares

apt update
apt upgrade

Os repositórios extras, que não são suportados oficialmente pelo sistema, como por exemplo
o do VirtualBox, ele aconselha primeiro a baixar a chave de segurança do apt, com o seguinte
comando,

wget -q https://www.virtualbox.org/download/oracle_vbox_2016.asc -O- | sudo apt-key


,→ add -

os detalhes estão na página https://www.virtualbox.org/wiki/Linux_Downloads. A


seguir é necessário adicionar o repositório, o qual atualmente é feito criando-se um arquivo com
o nome do site na pasta /etc/apt/sources.list.d/ com o seguinte comando

sudo echo "deb http://download.virtualbox.org/virtualbox/debian xenial contrib" >


,→ /etc/apt/sources.list.d/virtualbox.list

4
Esse comando redireciona a saída do comando echo para o arquivo:

/etc/apt/sources.list.d/virtualbox.list

o qual contém o caminho correto de onde encontrar o pacote.


Antes de instalar deve-se fazer um update do sistema

apt-get update
apt-get upgrade

Entretanto, nesse caso o repositório oficial conta com uma versão desatualizada do virtualbox,
portanto é necessário descobrir que versão instalar, e para isso faça

unity-scope-virtualbox - VirtualBox scope for Unity


virtualbox - solução de virtualização x86 - binários base
virtualbox-dbg - x86 virtualization solution - debugging symbols
virtualbox-dkms - x86 virtualization solution - kernel module sources for dkms
virtualbox-guest-additions-iso - guest additions iso image for VirtualBox
virtualbox-guest-dkms - x86 virtualization solution - guest addition module source for
,→ dkms
virtualbox-guest-source - x86 virtualization solution - guest addition module source
virtualbox-guest-utils - x86 virtualization solution - non-X11 guest utilities
virtualbox-guest-x11 - x86 virtualization solution - X11 guest utilities
virtualbox-qt - x86 virtualization solution - Qt based user interface
virtualbox-source - x86 virtualization solution - kernel module source
virtualbox-ext-pack - extra capabilities for VirtualBox, downloader.
virtualbox-5.0 - Oracle VM VirtualBox
virtualbox-5.1 - Oracle VM VirtualBox

Como desejamos instalar a versão mais nova dela então fazemos

apt-get install virtualbox-5.1

Agora a máquina virtual está instalada.

3 Gerenciando pacotes
Houve uma época em que a instalação de pacotes precisava ser feita exclusivamente por comandos
no console, o que consumia tempo e exigia um certo trabalho. Era necessário, por exemplo,
lidar manualmente com todas as dependências necessárias para a instalação de um software,
obedecendo, inclusive, a ordem de instalação desses pacotes. Mas, felizmente, isso ficou no
passado.

3.0.1 Central de Programas do Ubuntu Linux


Hoje existe maneiras bem mais práticas e simples de se instalar e remover programas do Ubuntu.
A principal delas é por meio da Central de Programas, que pode ser executada pelo Launcher
localizado no lado esquerdo da tela.
Para usar a Central sem problemas é necessário ter uma conexão ativa com a Internet.
Afinal, todos os programas estão armazenados em espaços virtuais remotos conhecidos como
repositórios.

5
Instalando um programa no Ubuntu Para instalar uma aplicação, você pode começar
navegando pelas categorias posicionadas na lateral esquerda da Central de Programas
do Ubuntu. Ao encontrar o programa desejado, clique sobre ele e, em seguida, no botão
Instalar. Por medidas de segurança, é necessário informar a senha do seu usuário para
que o software seja instalado com sucesso.
Assim que a ação for concluída, o software instalado estará disponível na parte inferior do
Launcher. Basta clicar sobre o ícone e executá-lo.

Remover um programa instalado Para remover um programa instalado anteriormente, vol-


taremos à Central de Programas. Lá, clique no botão Instalados para listar todo os
softwares presentes no sistema. Depois disso, o procedimento é bastante similar ao de
instalação.
Basta navegar pelas categorias, selecionar o programa desejado e, em seguida, clicar
no botão Remover. A senha do usuário também será solicitada para que a ação seja
efetivamente realizada.

Histórico de instalações e remoções Caso você queira ter uma ideia da quantidade de
arquivos manipulados durante a instalação e remoção de pacotes do seu sistema, clique no
botão Histórico da Central de Programas do Ubuntu.
Analisando a lista, você perceberá quantos pacotes foram instalados ou excluídos sem que
sequer notássemos. Já pensou no trabalho de gerenciar tudo isso manualmente?
Há técnicas mais avançadas de gerenciamento de pacotes que podem ser adotadas pelo
usuário. Com elas, é possível personalizar a lista de repositórios e o uso de gerenciadores
do modo texto, como o dpkg. Esse assunto, porém, é tema de um próximo tutorial. Fique
ligado no Canaltech.

4 Gerenciamento de Pacotes
As distribuições GNU/Linux baseadas no Debian, assim como no Ubuntu possuem um bom
sistema de gestão de pacotes para instalar, atualizar, configurar e remover software. Essa gestão
de pacotes, além de fornecer um acesso a uma base organizada de mais de 35.000 pacotes de
softwares, possui facilidades de gerenciamento de pacotes e também apresentam uma excelente
capacidade de resolução de dependências e de atualizações assim como de verificação de versão
de softwares.
Há várias ferramentas disponíveis para interagir com o sistema de gerenciamento de pacotes
das distribuições baseadas no Debian/Ubuntu. Há vários aplicativos baseados na linha de
comando simples, os quais podem facilmente executarem tarefas automatizadas por adminis-
tradores de sistema. Por exemplo, podemos citar: apt, apt-get, dpkg, dselect, aptitude,
alien, etc. Há também vários aplicativos baseados em uma interface gráfica simples que são
fáceis de usar, por exemplo, o synaptic, a central de programas do ubuntu software-center,
o gdebi, etc.

dpkg Instala pacote debian (.deb) baixado;

gdebi Interface gráfica para o dpkg;

mintinstall Interface gráfica de instalação de programas para o Linux Mint;

software-center Interface gráfica de instalação de programas para o Ubuntu;

6
synaptic Melhor interface gráfica para instalação de programas;

aptitude Interface gráfica da linha de comando para instalação de programas;

apt-get Instalador de programas da linha de comando

apt-cache Mostra e busca informações dos programas disponíveis nos repositórios adicionados;

apt Novo instalador da linha de comando, que uniu as características do apt-get e do


apt-cache.

dpkg é um programa que manipula arquivos .deb, notavelmente extraindo, analisando, e


desempacotando os mesmos.

apt é um conjunto de programas que permite a execução alto nível de modificações no sistema:
instalando ou removendo pacotes (enquanto satisfaz dependências), atualizando o sistema,
listando pacotes disponíveis, etc.

O sistema de gerenciamento de pacotes do Ubuntu é o mesmo sistema usado na distribuição


Debian GNU/Linux. Os arquivos de pacotes contêm todos os arquivos necessários, meta-dados
e instruções para implementar uma funcionalidade especial ou aplicativo de software no seu
computador.
Arquivos de pacotes Debian normalmente têm a extensão ’.deb’, e normalmente existem em
repositórios que são coleções de pacotes encontrados em vários tipos de mídia, tais como discos
de CD-ROM ou on-line. Os pacotes são normalmente em um formato binário pré-compilado;
assim, a instalação é rápida e não requer nenhuma compilação de software.
Muitos pacotes complexos usam o conceito de dependências. Dependências são pacotes
adicionais requeridos pelo pacote principal a fim de funcionar corretamente. Por exemplo,
o pacote de síntese de voz speech depende da biblioteca libasound2 pacote, o qual é um
pacote fornecido pela biblioteca de som ALSA necessária para reprodução de áudio. Para o
aplicativo festival funcionar, todas as suas dependências deve ser instalado. As ferramentas
de gerenciamento de software no Ubuntu fará isso automaticamente.

5 uso do apt
O APT faz parte de um projeto grande e os planos originais de seus criadores não poderiam
deixar de pensar em uma interface gráfica que facilitasse as suas relações com o usuário final do
produto. Na comunidade daqueles que “alimentam” o GNU/Linux com projetos, programação e
correções de problemas, grande parte de seus usuários e/ou desenvolvedores se preocupa em
tornar seus programas mais capazes de serem usados por pessoas mais leigas.
O APT possui as opções de busca de pacotes, listagem de detalhes de um pacote, instalação
de um pacote, atualização da lista de pacotes do repositório de pacotes do sistema, verificação e
atualização para a versão mais nova de pacotes, remoção de pacotes, remoção e instalação de
pacotes mais novos.
O apt é uma ferramenta da Debian para gerenciamento de pacotes de forma simples, amigável
e rápida, contando inclusive com a instalação automática de dependências necessárias para a
finalização do processo.

7
5.1 Funções do APT
A seguir listamos as funções do comando apt:
add-repository - Adiciona entrada ao apt sources.list;

autoclean - Apaga antigos arquivos baixados;

autoremove - Remove automaticamente todos os pacotes não usados;

build - Constrói um pacote binário ou fonte a partir dos fontes;

build-dep - Configura as dependências da construção de para os pacotes fontes;

changelog - Mostra o registro das mudança do pacote, o changelog;

check - Verifica se não há dependências quebradas;

clean - Apaga os arquivos baixados;

contains - Lista os pacotes que contém o arquivo;

content - Lista os arquivos contidos no pacote;

deb - Instala um pacote .deb;

depends - Mostra as informações de dependências para o pacote;

dist-upgrade - Faz uma atualização do sistema removendo/instalando/atualizando pacotes;

download - Baixa o arquivo .deb para o pacote;

edit-sources - Edita /etc/apt/sources.list com seu editor preferido;

dselect-upgrade - Segue as seleções do dselect;

full-upgrade - O mesmo que ’dist-upgrade’;

held - Lista todos os pacotes mantidos;

help - Mostra uma ajuda para o comando;

hold - Mantém um pacote;

install - Instala/atualiza pacotes;

list - Lista os pacotes baseados em seus nomes;

policy - Mostra as definições do sistema;

purge - Remove os pacotes e seus respectivos arquivos de configurações;

recommends - Lista os pacotes recomendados para um pacote que estão ausentes;

rdepends - Mostra dependência reversa do pacote;

reinstall - Baixa e possivelmente reinstala um pacote já instalado;

remove - Remove pacotes;

8
search - Busca por um pacote pelo seu nome e/ou expressão;

show - Mostra informações detalhadas sobre um pacote;

showhold - O mesmo que ’held’;

source - Baixa os arquivos fontes do pacote;

sources - O mesmo que ’edit-sources’;

unhold - Não mantenha mais o pacote, ou seja, pode atualizar ele;

update - Baixe e atualiza a lista dos pacotes novos/atualizáveis no repositório do sistema;

upgrade - Realiza uma atualização segura;

version - Mostra a versão do pacote instalado;

O APT realiza o processo de instalação, remoção, atualização, listagem de foma automática,


de modo que quaisquer outros pacotes derivados que possam ser necessários sejam também
baixados e instalados durante o processo de instalação de um programa.
Vamos rodar um exemplo para o uso do comando apt:

sudo apt update

6 Uso do apt-get
O apt-get é o comando fornecido pelas distribuições GNU/Linux baseadas na distribuição
Debian que lista e instala e atualiza pacotes e dependências baseado na lista de fontes para os
pacotes do repositório de pacotes. O arquivo que lista essas fontes é o arquivo sources.list,
que está no diretório /etc/apt/sources.list desta distribuição. Entretanto, atualmente
te havido pequenas variações de distribuição para distribuição, sendo que atualmente há
um diretório chamado /etc/apt/sources.list.d o qual contém um arquivo .list para
cada repositório específico. Por exemplo, atualmente na distribuição LinuxMint o arquivo
/etc/apt/sources.list está vazio e os repositórios oficiais da distribuição encontram-se no
arquivo

/etc/apt/sources.list.d/official-package-repositories.list

Com o comando apt-get também é possível instalar, remover, atualizar e listar pacotes, e
sua sintaxe é a seguinte

Usage: apt-get [opções] comandos


apt-get [opções] install|remove pkg1 [pkg2 ...]
apt-get [opções] source pkg1 [pkg2 ...]

na qual os comandos podem ser:

update Atualiza a lista de pacotes disponíveis baseando-se nas fontes listadas no arquivo
list-sources;

upgrade Atualiza pacotes;

9
install Iinstala novos pacotes;
remove remove pacotes
autoremove remove automaticamente todos os pacotes não utilizados do sistema, útil após
realizar várias atualizações pois deixa o sistema mais limpo
purge remove pacotes e diretórios de configuração do pacote. Cuidado ao utilizar este comando
sem critério pois serviços como o apache criam seu diretório de configuração /etc/apache2
e o purge irá removê-lo, depois, mesmo reinstalando o apache ele não cria de novo o
diretório. Para criar novamente os arquivos de configuração do apache deverá instalar o
pacote pache-data, que instala os arquivos comuns do apache.
source faz o download dos arquivos de código-fonte para o pacote
build-dep configura as dependências de compilação de pacotes de código-fonte
dist-upgrade atualiza a distribuição, as várias distribuições baseadas no Debian, são geradas
em períodos distintos, por exemplo, o Ubuntu nos meses de abril (mês 4) e outubro (mês
10) lança suas distribuições, cujo nome reflete o ano e o mês de lançamento, como o Ubuntu
16.04. Além disso, a cada 2 anos, nos anos pares, o Ubuntu lança a sua distribuição
com suporte estendido por 3 anos para os desktops e 5 anos para os servidores, são as
chamadas LTS (Long Term Support). Se houver uma versão mais atual disponível o
comando “apt-get dist-upgrade” atualizará o sistema com ela para você.
dselect-upgrade segue as escolhas feitas no dselect, o deselect o um gerenciador de pacotes
que funciona no modo texto, ele é mais antigo, ele era distribuído junto com o dpkg até
junho de 2002.
clean apaga pastas e diretórios obtidos por downlad durante a instalação de pacotes
autoclean apaga pastas e diretórios obtidos por download durante a instalação de pacotes
check verifica se existem dependências erradas ou quebradas;
changelog obtém e mostra o changelog de um pacote;
download obtém o pacote binário do pacote e descarrega no diretório atual
1. Todo o usuário deve se ater em manter o seu sistema atualizado para evitar problemas
de segurança e bugs. Para isso deve-se atualizar o banco de dados local do gerenciador
de pacotes dos sistemas Debian, como por exemplo o apt-get. Para manter o sistema
atualizado faça:

# sudo apt-get update

execute este comando frequentemente para que o apt-get busque sempre as atualizações
da lista de pacotes DEB, e te informe que pacotes devem ser atualizados. Agora para
atualizar, caso haja alguma atualização faça:

# sudo apt-get upgrade

2. Fazendo apenas o download de um pacote deb

10
# sudo apt-get install programa -d

Seguindo o mesmo padrão para instalar qualquer programa o parâmetro -d no final do


comando faz com que os pacotes sejam apenas baixados e não instalados. Isso pode ser
útil se você quer baixar apenas os pacotes .deb para instalar posteriormente ou em outro
computador. Os arquivos que você baixar ficarão no diretório /var/cache/apt/archives
Um exemplo:

# sudo apt-get install inkscape -d

Desta forma você baixará o .deb do Inkscape para o Ubuntu mas não vai instalá-lo.
3. Simulando uma instalação

# sudo apt-get install programa -s

O parâmetro -s ao final do comando permite que você faça uma instalação simulada,
assim você pode observar tudo o que aconteceria no comando sem que ele efetivamente
ocorra, é bem interessante.
4. Instalando programa sem precisar dizer "sim"

# sudo apt-get install programa -y

Essa opção é muito usada em scripts de instalação de modo que não haja interação com
do usuário com o script. O parâmetro -y no final do comando assume que a resposta para
qualquer pergunta que o comando exija seja “sim”.
Normalmente ao dar um comando do tipo “sudo apt-get install inkscape” (para
seguir o exemplo), após pressionar a tecla "enter"e digitar a sua senha será pedido para
você pressionar a tecla "s"ou "y"para prosseguir com a instalação, usando este -y no final
do comando isso não será pedido.
5. Corrigindo pacotes quebrados

# sudo apt-get install -f

Diferente dos exemplos anteriores este pode ser usando exatamente assim: sudo apt-get
install -f. Ele tem o objetivo de corrigir possíveis pacotes quebrados que são resultado
de uma queda de energia durante uma instalação ou a instalação de um programa instável
que possa ter causado problemas. Ele é muito útil quando faz-se o download de um pacote
como o teamviewer e faz-se a instalação dele usando o dpkg, porém se as dependências
do pacote não estiverem, o pacote não será instalado até corrigir as dependências, o que é
feito com esse comando.
Esse comando é muito usado para instalar as dependências de um pacote que tentou-se
instalar com o dpkg, Entretanto, o mesmo não conseguiu instalar porque as dependências
não estavam instaladas. Exemplo, digamos que você tenha feito o download do seguinte
pacote: teamviewer_11.0.57095_i386.deb e tenta instalar o mesmo com

11
# dpkg -i teamviewer_11.0.57095_i386.deb

esse comando, pode retornar um erro dizendo que ele não foi instalado porque suas
dependências não foram satisfeitas. Nesse caso, você tem duas opções:

# sudo apt-get install -f

Em casos onde o “apt-get -f install” não consiga resolver o problema, experimente o


“apt-get -f remove”, como em:

# sudo apt-get -f remove

Ele tem uma função similar, mas dá preferência a remover os pacotes com problemas, ao
invés de tentar corrigir a instalação, resolvendo o problema em casos em que o pacote
instalado manualmente dependa de outros que não estão disponíveis via apt.
Em algumas situações o comando "dpkg --configure -a"é útil, pois ele verifica pendên-
cias na configuração dos pacotes, concluindo a instalação em casos em que a instalação foi
abortada no meio, como, por exemplo, nos casos de falta de energia. Assim use

# sudo dpkg --configure -a

Além de instalar os programas manualmente, o dpkg também permite removê-los, usando


o parâmetro "-r", como em "dpkg -r teamviewer_11". Em situações normais, seria
melhor simplesmente usar o apt, apt-get ou o aptitude, mas em algumas situações
específicas o "dpkg -r"pode ser mais útil, como em casos onde pacotes extra-oficiais
problemáticos tentam subscrever arquivos que fazem parte de outros pacotes.

7 Pacotes fontes
Uma das características que distingue Debian de outras distribuições é a gestão de pacotes
da distribuição. Debian tipicamente sempre disponibilizou ferramentas mais evoluídas para a
gestão de pacotes. Na verdade Debian disponibiliza uma série de utilitários para a gestão de
pacotes que executam as suas tarefas de forma simples e eficiente. Consoante o que se pretende
fazer é só utilizar a ferramenta certa. Aqui fica listado uma série de exemplos que pretendem
demonstrar como fazer as tarefas de gestão de pacotes consoante a necessidade de cada um.
Atualizar a lista dos pacotes disponíveis

apt-get update

ou
aptitude update

Atualizar os pacotes instalados

apt-get upgrade

12
ou
aptitude upgrade

Ficheiro com a lista de arquivos de pacotes a utilizar:

/etc/apt/sources.list

Por exemplo, para utilizar a distribuição estável a partir de um arquivo Português, basta
editar o ficheiro indicado e ter lá o seguinte conteúdo:

deb http://debian.ua.pt/debian/ testing main contrib non-free

A seguir damos uma breve explicação sobre esta linha:

• http://. . . é o método de acesso ao repositório de pacotes, também poderia ser cdrom://


para CDs de pacotes, file:// para repositórios locais, etc...

• testing, é a distribuição. Neste campo opções possíveis são stable, testing e unstable.

• main contrib e non-free são as secções do repositório que irão ser acedidas. É possível
utilizar somente a main.

Para ter também disponível o código fonte dos pacotes, acrescentar no arquivo:

deb-src http://debian.ua.pt/debian/ testing main contrib non-free

Procurar um pacote

apt-cache search nome

ou
aptitude search nome

Detalhes de um pacote

apt-cache show pacote

ou
aptitude show pacote

Nota
É possível pedir ao apt (ou apt-get ou aptitude) para instalar
certos pacotes e remover outros na mesma linha de comando ao
adicionar um sufixo. Com um comando apt install, adicione -"aos
nomes de pacotes que você deseja remover. Com um comando apt
remove, adicione "+"para os nomes dos pacotes que você deseja
instalar.

13
8 O gerenciador de pacotes aptitude
No Debian, a principal ferramenta de instalação de software usada pelos usuários dessa distri-
buição é o aptitude.
Veja algumas instruções básicas de uso do aptitude:
aptitude update – equivalente ao apt-get update, serve para atualizar o banco de dados
interno dos pacotes disponíveis para instalação (ou remoção).

aptitude safe-upgrade – equivalente ao apt-get -u upgrade, usado para atualizar todos os


pacotes já instalados no seu sistema.

aptitude search expressão – equivalente ao apt-get cache expressão’, usado para buscar
uma expressão dentro da relação de pacotes do repositório. Se você quiser encontrar
aplicativos que capturem a tela, use o comando aptitude search screenshot.

aptitude show nome-do-pacote – equivalente a apt-get show nome-do-pacote, serve para


obter informações sobre o pacote pesquisado.

aptitude install – equivale ao apt-get install, que é usado para instalar novos pacotes de
softwares no sistema.

aptitude remove – tal como o apt-get remove nome-do-pacote, serve para remover, de-
sinstalar pacotes do sistema.

9 Diferença entre o apt-get e o aptitude


Ao utilizar o comando "apt-get install PACOTE"será instalado automaticamente o PACOTE
com suas respectivas dependências, entretanto, essas o mesmo não removerá automaticamente
posteriormente, gerando com isso um acúmulo de “lixo” no sistema. Certamente esse problema
pode ser contornado com diversas ferramentas tais como o deborphan e sua interface gráfica o
gtkorphan, ou ainda com o comando

# sudo apt-get autoclean

e para remover as dependências não usadas

# sudo apt-get autoremove

e depois limpe o cache com

# sudo apt-get clean

Para remover, desinstalar um programa com o apt-get sem deixar dependências basta usar:

# sudo apt-get autoremove PACOTE

Por exemplo, para instalar o aplicativo de nome PACOTE, o qual possui dependências
necessárias para seu funcionamento, usa-se o seguinte comando

# sudo apt-get install PACOTE

14
o qual fará a instalação do PACOTE juntamente com suas dependências, sem que seja
necessário se preocupar em buscar essas dependências.
Entretanto, digamos que você testou e não gostou do aplicativo PACOTE e resolveu remover
ele, então para isso usou o seguinte comando:

# apt-get remove PACOTE

O aplicativo PACOTE agora foi desinstalado sem dificuldades. Entretanto, o que acontece
com os pacotes com as dependências que foram instalados juntamente com ele anteriormente?
Bom, eles continuam instalados, gerando um certo acúmulo de “lixo” em seu sistema. O mesmo
ocorre com todos os pacotes que forem instalados em seu sistema e futuramente removidos com
o comando apt-get.
E qual é a diferença de comportamento entre o apt-get e o aptitude nesse contexto? Bom,
o aptitude tem um funcionamento bem semelhante para a instalação de pacotes. Vejamos,
para instalar o mesmo pacote com o aptitude faz-se

# aptitude install PACOTE

e assim como o apt-get, o aptitude irá instalar automaticamente todas as dependências


do PACOTE. Ao remover o PACOTE usando o seguinte comando:

# aptitude remove PACOTE

ele aparentemente terá o mesmo resultado do apt-get, entretanto, com o grande diferencial
de também remover juntamente com o PACOTE, todas as suas dependências que outrora foram
instaladas, e que não estão sendo usadas por nenhum novo pacote instalado posteriormente.
Para avaliar a quantidade de pacotes desnecessários que deve existir em sua máquina use o
aplicativo deborphan, ou tente também o seguinte comando

# aptitude search '~o'

Ao usar frequentemente o aptitude você evita que isso ocorra.


A seguir ressaltamos alguns pontos em que o aptitude difere do apt-get:
• O aptitude irá remover automaticamente pacotes elegíveis, enquanto o apt-get requer
um comando específico para isto.

• Os comandos para atualizar a distribuição possuem nomes diferentes: apt-get upgrade


e apt-get dist-upgrade versus aptitude safe-upgrade e aptitude full-upgrade.

• O aptitude compreende todas as funções do apt-get, do apt-cache e do apt-mark, que


correspondem a 3 comandos separados.

• Há diferenças sintáticas sutis nos pedidos de busca do aptitude em relação ao apt-cache.

• O aptitude possui as opções ’why’ e ’why-not’ que servem para informar quais pacotes,
dentre os que foram instalados manualmente, estão criando dificuldades em alguma ação
sobre o sistema.

• O aptitude pode relatar por que algumas ações não são possíveis (como a instalação,
remoção e atualização de algum pacote). Além disto, ele pode sugerir como resolver o
problema. Já o apt-get só avisa que sua ação não é possível.

15
10 Obter as dependências de um pacote
Para obter as dependências de um pacote faça

apt-cache depends wxmaxima


wxmaxima
Depende: libc6
Depende: libgcc1
Depende: libstdc++6
Depende: libwxbase3.0-0v5
Depende: libwxgtk3.0-0v5
Depende: maxima
Depende: ibus-gtk3
Depende: maxima-doc
Depende: imagemagick
graphicsmagick-imagemagick-compat
imagemagick:i386
Recomenda: fonts-jsmath
Recomenda: texlive-latex-extra

fornece a lista de pacotes ao qual o wxmaxima depende.


Para listar os pacotes que depende de um determinado pacote, por exemplo, que pacotes
dependem do gfortran:

apt-cache rdepends gfortran


gfortran
Reverse Depends:
libkernlib1-dev
liboctave-dev
pgplot5
dynare-matlab
tau
scilab-cli
science-meteorology-dev
r-base-dev
paw++
paw
papi-examples
openmpi-bin
|nypatchy
lush
libpawlib2-gfortran
liboctave-dev
libmpich-dev
gfortran-doc
libfastjet-fortran-dev
libelmer-dev
libcgal-demo
gprbuild
geant321
fcc
|cfortran
binfmtc
python3-numpy
python-numpy
|libtool
libblas-dev

16
gfortran-multilib

11 Reconstruindo um pacote através do fonte


Você pode habilitar o repositório dos fontes, para em seguida recompilar algum pacote. Considere
por exemplo o pacote wxmaxima, primeiro remova o pacote

sudo apt-get remove wxmaxima

A seguir será necessário reconstruir a partir dos fontes, e para isso:

sudo apt-get -b source wxmaxima

em seguida é necessário instalar o novo pacote

sudo dpkg -i wxmaxima*.deb

Entretanto, você não precisa de desinstalar o pacote já instalado, e para isso,

apt-get build-dep wxmaxima


apt-get source wxmaxima
cd wxmaxima-13.04.2
dpkg-buildpackage -uc -us -rfakeroot
cd ..
sudo dpkg -i wxmaxima_13.04.2-1_*.deb

O dpkg-buildpackage pode precisar de alguns pacotes -dev, instale aqueles que forem
necessário e tente novamente.

17