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