Metadados do pacote
Nos repositórios, que são locais onde encontramos os pacotes, também encontramos informações adicionais dos pacotes, vulgarmente chamadas de metadados, tais informação podem variar de acordo com o pacote e distribuição, e podem conter:
- Um resumo;
- Uma descrição;
- Uma lista de arquivos contidos no pacote;
- A versão do software contido, bem como o número da versão do pacote;
- Quando, onde e por quem foi compilado;
- Para qual arquitetura foi compilado;
- Somas de verificação dos arquivos contidos no pacote (checksum);
- A licença do software contido;
- Outros pacotes que ele necessita para funcionar corretamente (dependências);
- etc.
Alguns metadados são armazenados localmente, e atualizados periodicamente, para que o sistema possua informações atualizadas sobre os pacotes instalados e disponíveis.
Cada distribuição chama os metadados de nomes diferentes, alguns serão citados ao longo desde artigo.
Dependências do pacote
Durante a instalação de algum pacote, podemos encontrar algum que dependa de outro pacote, esta dependência pode ser de uma ferramenta, biblioteca, etc. Para que a execução sejam bem sucedidas temos que resolver primeiramente a dependência. Exemplificando, o pacote A necessita que os pacotes B, C e D sejam instalados em ordem para funcionar corretamente.
Alguns aspectos importantes com relação as dependências de pacote:
- Dependências de pacote são transitivas. Isto significa que: se o pacote A necessita do pacote B, e o pacote B necessita do pacote C, necessariamente o pacote A também necessita do pacote de C. Sendo este fato o porquê de, às vezes, se ter um monte de pacotes a instalar, embora se deseje apenas um aplicativo.
- Dependências em bibliotecas (tipicamente pacotes que começam com "lib" em seus nomes) são muito comuns e praticamente todos os aplicativos individuais dependem de um conjunto de pacotes de bibliotecas.
Os pacotes e as dependências do pacote são aspectos muito importantes nas distribuições GBU/Linux, pois fornecem uma maneira modular para criar e gerir um sistema operacional e seus aplicativos.
É também uma maneira muito eficiente de manter um sistema estável e seguro. Assim, quando uma falha de segurança, exploit ou bug afeta uma biblioteca usada por um ou vários aplicativos, atualizar um pacote singular atualizará o sistema para todos aplicativos.
Como exemplo, o pacote openssl contém bibliotecas de criptografia que são usadas por muitas aplicações e outras bibliotecas (por exemplo, para a criptografia SSL). Quando uma nova do openssl está disponível, todas as aplicações que o usam se beneficiarão dela apenas pela atualização de um único.