Descrição do que são gerenciadores de software
[cascardo/admin.git] / software / gerenciadores
1 Gerenciadores de Pacotes
2
3 Para tornar útil a informação contida em pacotes, é necessário um
4 software que faça verificações e produza os resultados esperados das
5 operações de instalação, remoção e atualização. Esse software é o
6 gerenciador de pacotes. Entre dois exemplos de gerenciadores de pacotes,
7 temos o rpm e o dpkg.
8
9 Além de extrair os arquivos do pacote e copiá-los na árvore de
10 diretórios do sistema e executar as intruções pré e pós instalação, o
11 gerenciador de pacotes armazena os meta-dados em uma base de dados de
12 pacotes. Diferentes gerenciadores utilizam diferentes métodos de
13 armazenamento. O rpm, por exemplo, utiliza o BDB (Berkeley Database),
14 uma estrutura de dados de hash ou árvore que permite a rápida
15 recuperação dos dados em disco. O dpkg, em contrapartida, armazena as
16 informações em arquivos em um diretório e em um arquivo texto com o
17 status de cada pacote.
18
19 O gerenciador de pacotes, geralmente, deve garantir a consistência do
20 sistema, impedindo a instalação de pacotes cujas dependências não
21 estejam instaladas ou impedindo a remoção de um pacote que é dependência
22 de outros ainda instalados. A verificação de que o sistema está íntegro
23 também pode ser feita, verificando que os arquivos no sistema são os
24 mesmos dos pacotes. Isso pode ser feito utilizando "hashes" ou "sums"
25 dos arquivos. Daí a importância de distinguir quais são arquivos de
26 configuração, já que esses podem ser modificados. Lembrando que essa
27 verificação não pode garantir segurança alguma do sistema, já que os
28 "hashes" também podem ser modificados por um eventual invasor.
29
30 O gerenciador de pacotes permite, além de instalar, remover e atualizar
31 pacotes, a consulta a sua base de dados, permitindo verificar que
32 pacotes estão instalados e seus meta-dados, incluindo relações com
33 outros pacotes e arquivos.
34
35 Os principais gerenciadores de pacote em sistemas que comumente utilizam
36 GNU e Linux são o rpm e o dpkg. Enumerar todas as alternativas só não
37 seria tão grande quanto enumerar as distribuições de GNU e Linux já que
38 boa parte delas utilizam justamente o rpm e o dpkg.
39
40 O rpm foi criado pela Red Hat e é, ainda hoje, utilizado nas
41 distribuições que se baseiam ou se basearam nela. É também o formato de
42 pacote padrão do LSB (Linux Standard Base). Recentemente, ocorreu uma
43 iniciativa de modernizar o rpm. No entanto, essa iniciativa, chamada de
44 rpm5, não pretende manter compatibilidade com o formato padrão do LSB e
45 está adotando outros formatos, como o xar, cujos meta-dados são
46 descritos utilizando XML.
47
48 O dpkg é o gerenciador de pacotes criado pelo projeto Debian. O formato
49 de seus pacotes são denominados deb, ao contrário do rpm, que é tanto o
50 nome do gerenciador quanto do formato. Os meta-dados do deb são
51 descritos em um formato RFC822, o mesmo dos cabeçalhos de e-mails, em
52 um arquivo tar armazenado em um arquivo ar, onde se encontra o arquivo
53 tar com os arquivos a instalar. Veremos em uma próxima seção como
54 extrair esses arquivos utilizando ferramentas facilmente encontradas em
55 sistemas diferentes do Debian.