Um
gerenciador de pacotes é uma ferramenta utilizada para instalação, remoção e atualização de programas. Normalmente são encontrados em sistemas
GNU/Linux, tendo em vista que tais sistemas consistem de milhares de pacotes distintos.
Os programas são distribuídos através de pacotes, que estão ligados a metadados, estes metadados contém informações adicionais, tais como uma descrição do aplicativo e uma lista de dependências, que são programas necessárias para que o programa execute corretamente.
Os programas e metadados podem ser encontrados em repositórios, que podem ser locais (CD, DVD ou disco rígido) ou online (servidores FTP). Após a instalação, os metadados são armazenados em um banco de dados local de pacotes que é usado para recuperar os pacotes do software.
Pacotes
Um
pacote de software é um arquivo, normalmente compactado de acordo com a distribuição, que contém todos os arquivos (binários, shell scripts, configuração, dados, bibliotecas, documentação, papeis de parede, ícones e outros) necessários para a instalação de um software (aplicativo), além de todas as informações necessárias para a sua instalação, remoção, configuração e manutenção será usado pelo gerenciador de pacotes.
Como um quebra cabeça, os sistemas GNU/Linux são formados por diversos pacotes. Um programa pode ser divido em vários pacotes, na qual você poderá instalar apenas as partes que lhe for conveniente, deixando o sistema mais enxuto. Basicamente em sistemas GNU/Linux temos dois tipos de pacotes:
- Código-fonte: conjunto de arquivos, código-fonte, documentação e arquivos de configuração, que deverão ser compilados para serem instalados no sistema;
- Binários: pacote de código-fonte pré-compilados para uma distribuição ou arquitetura específica, juntamente com outros arquivos necessário para a utilização/instalação.
Nosso foco de estudo será os arquivos binários, comumente chamados apenas de pacotes, e sua instalação através da linha de comando, tendo em vista que alguns pacotes binários podem ser instalados baixando o pacote (compatível com seu sistema) e dando alguns cliques como no Windows, ou através de gerenciadores de pacote em modo gráfico.
As distribuições GNU/Linux utilizam softwares empacotados para facilitar a manipulação pelo gerenciador de pacotes. É muito mais fácil e rápido instalar o pacote de um software que já foi compilado e empacotado do que baixar o seu código-fonte, compilá-lo e instalá-lo manualmente. Da mesma forma, é muito fácil e rápido desinstalar o pacote desse software do que removê-lo manualmente.
Quando o pacote é executado, seus dados são descompactados e copiados para o sistema de arquivos do sistema operacional, criando links simbólicos onde for necessário, atalhos no menu e no desktop e, às vezes, oferecendo opções de configuração ao usuário.
Alguns pacotes podem depender de outros, ou seja, um certo pacote X precisa de uma biblioteca do pacote Y, isso é conhecido como dependência, e será tratada mais adiante.
Os pacotes são criados para uma versão específica de uma determinada distribuição, pois as dependências podem variar entre distribuições e versões de uma distribuição.
Há muitos formatos de pacotes. Os mais conhecidos são .tgz, .deb e .rpm. Uns menos comuns .pup, .pisi, .tazpkg e .mo.