Descrição do que são gerenciadores de software
[cascardo/admin.git] / software / gerenciadores
diff --git a/software/gerenciadores b/software/gerenciadores
new file mode 100644 (file)
index 0000000..06cb5e0
--- /dev/null
@@ -0,0 +1,55 @@
+Gerenciadores de Pacotes
+
+Para tornar útil a informação contida em pacotes, é necessário um
+software que faça verificações e produza os resultados esperados das
+operações de instalação, remoção e atualização. Esse software é o
+gerenciador de pacotes. Entre dois exemplos de gerenciadores de pacotes,
+temos o rpm e o dpkg.
+
+Além de extrair os arquivos do pacote e copiá-los na árvore de
+diretórios do sistema e executar as intruções pré e pós instalação, o
+gerenciador de pacotes armazena os meta-dados em uma base de dados de
+pacotes. Diferentes gerenciadores utilizam diferentes métodos de
+armazenamento. O rpm, por exemplo, utiliza o BDB (Berkeley Database),
+uma estrutura de dados de hash ou árvore que permite a rápida
+recuperação dos dados em disco. O dpkg, em contrapartida, armazena as
+informações em arquivos em um diretório e em um arquivo texto com o
+status de cada pacote.
+
+O gerenciador de pacotes, geralmente, deve garantir a consistência do
+sistema, impedindo a instalação de pacotes cujas dependências não
+estejam instaladas ou impedindo a remoção de um pacote que é dependência
+de outros ainda instalados. A verificação de que o sistema está íntegro
+também pode ser feita, verificando que os arquivos no sistema são os
+mesmos dos pacotes. Isso pode ser feito utilizando "hashes" ou "sums"
+dos arquivos. Daí a importância de distinguir quais são arquivos de
+configuração, já que esses podem ser modificados. Lembrando que essa
+verificação não pode garantir segurança alguma do sistema, já que os
+"hashes" também podem ser modificados por um eventual invasor.
+
+O gerenciador de pacotes permite, além de instalar, remover e atualizar
+pacotes, a consulta a sua base de dados, permitindo verificar que
+pacotes estão instalados e seus meta-dados, incluindo relações com
+outros pacotes e arquivos.
+
+Os principais gerenciadores de pacote em sistemas que comumente utilizam
+GNU e Linux são o rpm e o dpkg. Enumerar todas as alternativas só não
+seria tão grande quanto enumerar as distribuições de GNU e Linux já que
+boa parte delas utilizam justamente o rpm e o dpkg.
+
+O rpm foi criado pela Red Hat e é, ainda hoje, utilizado nas
+distribuições que se baseiam ou se basearam nela. É também o formato de
+pacote padrão do LSB (Linux Standard Base). Recentemente, ocorreu uma
+iniciativa de modernizar o rpm. No entanto, essa iniciativa, chamada de
+rpm5, não pretende manter compatibilidade com o formato padrão do LSB e
+está adotando outros formatos, como o xar, cujos meta-dados são
+descritos utilizando XML.
+
+O dpkg é o gerenciador de pacotes criado pelo projeto Debian. O formato
+de seus pacotes são denominados deb, ao contrário do rpm, que é tanto o
+nome do gerenciador quanto do formato. Os meta-dados do deb são
+descritos em um formato RFC822, o mesmo dos cabeçalhos de e-mails, em
+um arquivo tar armazenado em um arquivo ar, onde se encontra o arquivo
+tar com os arquivos a instalar. Veremos em uma próxima seção como
+extrair esses arquivos utilizando ferramentas facilmente encontradas em
+sistemas diferentes do Debian.