Apt-get, Dpkg e Aptitude

Análise contextual entre o Apt-get, Dpkg e Aptitude

Um breve histórico – por Ricardo Paulino

O termo APT (Advanced Packaging Tool), em nossa língua descrito como ferramenta de empacotamento avançada consiste no conjunto conjunto de comandos a serem usados pela distribuição linux debian e outras distribuições baseadas no debian, como é o caso do ubuntu para administrar pacotes do tipo DEB.

[irp posts=”10428″ name=”A Ubuntização do Linux”]

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 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 linux vem fazendo um percurso rápido até as casas da pessoas comuns, sem formação especial mas com necessidade de obter as mesmas características oferecidas por sistemas operacionais pagos em sistemas operacionais baseados no linux, ao alcance de todos e mantidos por uma comunidade imensa e fervorosa por deixar seu código mais funcional e livre de erros.

Iniciativas de empresas como a Canonical, fabricante da distribuição Ubuntu, de disponibilizar seu o software de foma gratuita, algo garantido pela licença GPL (Gnu Public License), faz que muitos de seus usuários comprem seus serviços de hospedagem em nuvem ou o suporte técnico além de vários outros serviços da empresa.

Essa forma de pensar, de forma colaborativa, de grande parte dos usuários de plataformas linux é que provavelmente trará um futuro mais promissor para pessoas que não disponibilizam de recursos financeiros suficientes para investir em sofwares caros como é o caso da grande maioria disponível no mercado.


APT

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.

Funções do APT:

  • list – lista pacotes baseado no nome do pacote
  • search – procura na nas descrições dos pacote pela <keyword> dada
  • show – mostra detalhes do pacote
  • update – atualiza a lista dos pacotes disponíveis no repositório do sistema (list)
  • install -instala pacotes
  • remove – remove pacotes
  • upgrade – atualiza o sistema instalando ou atualizando pacotes
  • full-upgrade – atualiza o sistema removendo , instalando ou atualizando os pacotes
  • edit-sources – edita o arquivo de informação sobre as fontes para pacotes

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

A figura a seguir mostra a tela do terminal rodando o APT para atualizar a lista de pacotes disponíveis para instalação.

apt-get no terminal

Apt-get

O apt-get é baseado numa biblioteca que contém as aplicações principais para manipulação de pacotes, o apt, ele é o primeiro front-end — em linha de comando — que foi desenvolvido dentro do projeto debian. A figura abaixo mostra a excução de uma atualização da lista do repositório de pacotes do sistema.

Apt-get updateO apt-get é o comando fornecido pela distribuição linux 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/sources.list desta distribuição.

Com o apt-get também é possível instalar, remover, atualizar e listar pacotes, vamos listar as funções do apt-get:

  • update – atualiza a lista de pacotes disponíveis baseando-se nas fontes listadas no arquivo list-sources
  • upgrade – atualiza pacotes
  • install – instala 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 apache-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, várias distribuições são geradas, ao longo do ano, entre elas 2 versões fechadas e outras intermediarias, se houver uma versão mais atual disponível o comando “apt-get dist-upgrad” 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 distribuido 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 downlad durante a instalação de pacotes
  • check – verifica se existem dependências erradas
  • 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

Aptitude

O aptitude mais um programa que facilita a vida do usuário ao coletar os pacotes disponíveis de acordo com o arquivo list.sources do sistema. Além de permitir ao usuário a facilidade para encontrar pacotes ele também instala, atualiza e remove pacotes da mesma forma que o apt-get.

Por ser um facilitador em coletar dados para o usuário dizemos que se trata de uma ferramenta front-end. Para ajudar o aptitude possui uma inteface gráfica e também pode ser utilizado através da linha de comando apenas digitando o comando aptitude.

Aptitude no Ubuntu

Acima podemos ver como é a tela do aptitude. É possível navegar no aptitude com as setas e instalar/remover/remover pacotes com a tecla “g”. É possível também atualizar a lista de pacotes do repositório com a tecla “u”.

Veremos um exemplo de como executar o aptitude pela linha de comando para atualizar a lista de pacotes disponíveis para instalação no repositório do sistema:

sudo aptitude update

aptitude

Para atualizar os pacotes instalados você poderá usar o comando:

sudo aptitude upgrade -y

O -y é a opção que faz com que o comando não peça confirmação.

aptitude

dpkg

O dpkg é fundamental para as distribuições debian pois ele é um programa de baixo nível (que lida de forma mais precisa, próxima com o hardware da máquina). Para que possam distinguir bem o APT e o RPM são ferramentas de alto nível com as quais temos mais facilidade de lidar.

Esse programa serve de base para as distribuições linux debian. Ele é usado para instalar e remover pacotes do sistema, bem como fornecer outras informações sobre esses pacotes. Os pacotes instalados pelo dpkg têm a extensão deb,

Ferramentas do dpkg são capazes empacotar e desempacotar pacotes, ler informações de pacotes, de mudanças nos pacotes em suas atualizações, podem cacular as dependências de certo pacote, enfim além de outras funcionalidades.

Lista de ferramentas dpkg:

  • dpkg-source empacota e desempacota os arquivos-fonte de um pacote debian.
  • dpkg-deb empacota e desempacota pacotes binários.
  • dpkg-gencontrol lê a informação de um certo pacote que tenha sido desempacotado do repositório de pacotes do debian, gera um arquivo deb binário e cria uma entrada para ele nos arquivos debian.
  • dpkg-shlibdeps calcula as dependências ocorridas com respeito a bibliotecas.
  • dpkg-genchanges lê a informação de um pacote desempacotado da árvore-fonte do Debian gerando uma construção de controle de arquivos (.changes).
  • dpkg-buildpackage é um script de controle que pode ser usado para construir um pacote automaticamente.
  • dpkg-distaddfile adiciona um arquivo nos arquivos Debian.
  • dpkg-parsechangelog lê os arquivos de mudanças (changelog) de um pacote desempacotado da árvore-fonte do Debian.

Como exemplo de utilização do dpkg instalaremos o pacote do programa bluefish, para isso vou fazer o download do programa através do comando na pasta pessoal:

sudo aptitude download bluefish

Agora que temos o pacote bluefish_2.2.6-2_amd64.deb iremos instalá-lo com o aptitude:

sudo dpkg -i bluefish_2.2.6-2_amd64.deb

A figura a seguir mostra o comando sendo executado no terminal do Ubuntu:

dkpg no linux

Espero que esse texto lhes seja útil!

fontes: todos os assuntos aqui tratados foram tirados de conhecimento formados em trabalhos e estudos diversos além de leituras em artigos disponíveis sobre o assunto no site wikipedia e com o comando man. O comando man seguido do nome do comando a ser pesquisado retorna um texto explicativo para ajuda.

Agora sabemos as diferenças entre o apt-get, o dpkg e o aptitude.