Pacotes de Software Ao distribuir um software para instalação em um sistema, não basta apenas incluir os arquivos que compõem o software. Instruções de execução anterior e posterior à cópia desses arquivos são necessárias algumas vezes. Outras informações que descrevam o software, seja para algum ser humano ou para o software de gerenciamento de softwares, também são comuns. Alguns casos de execução pré e pós instalação é a criação de um usuário específico para o software, ou a atualização de um índice, cache ou registro. Entre exemplos de tais índices está o de bibliotecas compartilhadas, o de documentação, plugins para algum outro software, entre vários outros. Informações geralmente necessárias para o gerenciador de software incluem: * Arquitetura: plataforma pra qual o software foi compilado para funcionar. Exemplos: Intel x86, PowerPC, ARM, etc. * Dependências: outros softwares que devem estar instalados para que esse funcione. * Versão: para determinar se um pacote é mais novo ou mais velho que a versão instalada no sistema. Um pacote, portanto, é um arquivo contendo os arquivos a serem instalados no sistema, instruções para sua instalação e meta-dados contendo informações sobre o pacote. Outras informações ou meta-dados encontrados em diferentes sistemas de gerenciamento de software são: * Nome: utilizado para identificar os pacotes, seja para atualização ou para especificação das relações entre pacotes. * Prioridade: o quão importante é o pacote para o sistema. * Seção: campo que permite categorização e facilita busca de pacotes. * Tamanho: espaço ocupado pelo pacote após ser instalado. * Mantenedor/Desenvolvedor/Empacotador: responsável pelo pacote, geralmente contendo endereço de e-mail para contato. * Descrição curta e longa: permite ao usuário identificar a utilidade e funcionalidade do pacote. * Release: versão do pacote em si, podendo haver diferentes "releases" mesmo entre as mesmas versões de um software. * Informações de Construção: data e host quando e onde pacote foi construído. * Licença: condições de uso, distribuição, modificação, entre outros, do pacote. * Assinatura Digital: permite a verificação da autenticidade da origem do pacote. * Relações entre pacotes: podem ser tão complexas como o conjunto Pre-Depends, Depends, Recommends, Suggests, Provides, Replaces, Conflicts, etc. * Arquivos especiais: entre eles, arquivos de configuração e de documentação, facilitando buscas de arquivos ou o backup de arquivos de configuração após a remoção do pacote.