Diversas distribuições Linux disponibilizam os softwares disponíveis para instalação em “pacotes”, ou seja, arquivos com formato apropriado, e que possuem em seu interior todas as informações necessárias para a sua instalação. Nestas distribuições também iremos encontrar um software especial chamado de gerenciador de pacotes, através do qual podemos instalar, reinstalar, atualizar, remover, … pacotes. Os dois principais gerenciadores de pacotes existentes foram criados pelo Debian
e RedHat
. Atualmente boa parte das grandes distribuições se utilizam de um deles.
Um sistema Debian
, ou nele baseado como o Ubuntu
é totalmente constituído de pacotes. Até mesmo os componentes essenciais para o seu funcionamento estão incluídos em algum pacote. Na verdade, a grosso modo, todos os arquivos existentes no sistema, que não foram criado por um usuário ou aplicação (como os do /home
) devem pertencer a um pacote instalado.
Cada pacote disponível para instalação no Debian
(ou Ubuntu
) é disponibilizado em um arquivo chamado de Debian binary package format possuindo extensão .deb
. Neste arquivo estão incluídos todos os executáveis, arquivos de configuração, scripts de instalação, …, necessários ao seu funcionamento. Dentre os gerenciadores de pacotes mais conhecidos existentes para o Debian
vale destacar:
apt-get
, aptitude
: São as ferramentas mais conhecidas. baixam os pacotes diretamente da Internet, de acordo com as configurações que serão descritas a seguir.synaptic
: com funcionalidade semelhante ao apt-get
, aptitude
, sendo uma ferramenta gráfica;dpkg
: Possibilita a utilização direta dos arquivos .deb
, sem depender da Internet.
Para que ferramentas como apt-get
possam funcionar corretamente é necessário informar de onde ela deve efetuar o download dos pacotes (ou das informações sobre eles). O arquivo de configuração mais importante, e utilizado por todas as ferramentas é o /etc/apt/sources.list
cuja sintaxe é mostrada a seguir:
deb http://ftp.br.debian.org/debian/ squeeze main contrib non-free deb-src http://ftp.br.debian.org/debian/ squeeze main contrib non-free deb http://security.debian.org/ squeeze/updates main contrib non-free deb-src http://security.debian.org/ squeeze/updates main contrib non-free ^ ^ ^ ^ | | | |- Listas de pacotes | | |- Nome da versão | |- URL para baixar os pacotes |- deb para pacotes compilados, deb-src para código fonte
Um diretório muito importante é o /var/cache/apt/
. Nele encontramos arquivos com extensão .bin
com informações sobre todos os pacotes disponíveis para instalação. Já em /var/cache/apt/archives/
fica armazenada uma cópia de todos os pacotes baixados da internet pelas ferramentas que iremos descrever a seguir.
O comando apt-get
é o principal e mais antigo modo de se gerenciar pacotes em um sistema Debian
. O comando aptitude
possui sintaxe e conjunto de funcionalidades semelhantes, sendo considerada uma ferramenta de mais alto nível. Dentre outras funcionalidades eles permitem:
A sintaxe básica para todas as tarefas que podemos realizar com eles é:
apt-cache <opção> [nome-do-pacote] apt-get <opção> [nome-do-pacote] aptitude <opção> [nome-do-pacote]
Com esta opção podemos buscar um pacote por seu nome
Sintaxes:
apt-cache search <nome-do-pacote>
aptitude search <nome-do-pacote>
Exemplos:
aluno@debian:~# apt-cache search ipcalc
aluno@debian:~# aptitude search ipcalc
Com esta opção podemos exibir informações detalhadas sobre um pacote
Sintaxes:
apt-cache show <nome-do-pacote>
aptitude show <nome-do-pacote>
Exemplos:
aluno@debian:~# apt-cache show ipcalc
aluno@debian:~# aptitude show ipcalc
Com esta opção podemos instalar um ou mais pacotes no sistema. Pré-requisitos são automaticamente detectados e instalados. Caso o pacote já esteja instalado e exista uma versão mais recente disponível, o mesmo será atualizado.
Sintaxes:
apt-get install <nome-do-pacote>
aptitude install <nome-do-pacote>
Exemplos:
aluno@debian:~# apt-get install ipcalc
aluno@debian:~# aptitude install ipcalc
Com esta opção podemos remover um pacote previamente instalado. A opção remove
preserva os arquivos de configuração. A opção purge
apaga completamente todos rastros do pacote do sistema.
Sintaxes:
apt-get remove <nome-do-pacote>
apt-get purge <nome-do-pacote>
aptitude remove <nome-do-pacote>
aptitude purge <nome-do-pacote>
Exemplos:
aluno@debian:~# apt-get remove ipcalc
aluno@debian:~# aptitude purge ipcalc
Por meio desta opção atualizamos as informações sobre pacotes, bem como a listagem de todos os pacotes disponíveis para instalação. É importante manter a listagem de pacotes atualizados, principalmente em servidores.
Sintaxes:
apt-get update
aptitude update
Exemplos:
aluno@debian:~# apt-get update
Exemplos:
aluno@debian:~# aptitude update
Por meio desta opção atualizamos, para a versão mais recente, todos os pacotes atualmente instalados no sistema. Esta é uma prática básica de segurança de grande importância, principalmente para servidores.
Sintaxes:
apt-get upgrade
aptitude upgrade
Exemplos:
aluno@debian:~# apt-get upgrade
Exemplos:
aluno@debian:~# aptitude upgrade
Por meio deste procedimento podemos atualizar a versão de todo o sistema operacional instalado na máquina. Por ser um procedimento delicado deve-se ter um pouco de cautela na sua execução (criar backups de informações importantes, informar que os serviços poderão ficar indisponíveis etc). O primeiro passo é alterar o arquivo /etc/apt/sources.list
informando o nome e URL da nova versão do sistema. Após isso, basta executar:
Com apt-get
:
aluno@debian:~# apt-get update aluno@debian:~# apt-get upgrade aluno@debian:~# apt-get dist-upgrade
Com aptitude
:
aluno@debian:~# aptitude update aluno@debian:~# aptitude upgrade aluno@debian:~# aptitude full-upgrade
Nem sempre 100% dos pacotes serão atualizados. Nestes casos é necessário proceder manualmente com a sua instalação (ou remoção). Para atualizar a versão do Sistema Operacional é sempre recomendado consultar a documentação da mesma.
Os comandos apt-get
e aptitude
são bastante utilizados devido sua facilidade de baixar e instalar, de forma automática, pacotes disponibilizados em servidores na Internet. Contudo, quando queremos obter informações sobre pacotes já instalados, ou instalar um pacote a partir de um pen-drive, CD-ROM etc o software mais adequado é o dpkg
. A seguir serão descritas algumas de suas principais funcionalidades.
Por meio desta opção podemos listar todos os pacotes atualmente instalados no sistema.
Sintaxe: dpkg -l
Exemplos:
aluno@debian:~# dpkg -l
Por meio desta opção podemos listar todos arquivos que fazem parte de um pacote instalado no sistema.
Sintaxe: dpkg -L <nome-do-pacote>
Exemplos:
aluno@debian:~# dpkg -L zip
Por meio desta opção podemos determinar a qual pacote, atualmente instalado no sistema, um arquivo pertence.
Sintaxe: dpkg -S <nome-do-arquivo>
Exemplos:
aluno@debian:~# dpkg -S /bin/ls
aluno@debian:~# dpkg -S /usr/bin/rar
Por meio desta opção podemos instalar um pacote diretamente a partir de um arquivo .deb
existente em um disco, pen-drive, CD-ROM etc. Pré-requisitos não serão verificados automaticamente.
Sintaxe: dpkg -i <arquivo.deb>
Exemplos:
aluno@debian:~# dpkg -i google-chrome-stable_current_i386.deb