Pacotes e Dependências

Uma das características de um sistema Linux é a modularização de seus componentes e o uso intensivo de bibliotecas compartilhadas, e isso se aplica também aos pacotes de aplicativos. É bastante comum que um programador ao escrever um aplicativo utilize bibliotecas de funções já existentes, mas não as inclua no pacote do seu aplicativo uma vez que, se todos fizessem isso, seria um tremendo desperdício de espaço e de banda de rede no caso de se disponibilizar esse pacote na Internet.

Assim, ao se instalar um determinado pacote, pode ser necessário primeiro instalar um outro pacote que contenha os "pré-requisitos" para a sua instalação. Pode-se dizer então que o primeiro pacote depende, ou tem como dependência o segundo pacote. Os pacotes RPM contém a informação das dependências de cada aplicativo, e essa informação é utilizada pelo gerenciador de pacotes ao se instalar um novo pacote no sistema, ou remover um pacote instalado. Caso a instalação de um novo pacote requeira um outro, ou se tente remover um pacote instalado do qual outro depende, o gerenciador de pacotes alertará o administrador sobre isso.

Outra característica do uso de pacotes é que podem haver aplicativos que se encontram "distribuídos" por vários pacotes. O XFree86 é um exemplo disto. As bibliotecas se encontram em um pacote, os binários em outro, e os módulos específicos a cada grupo de placas de vídeo em outros. A organização de um aplicativo em vários pacotes permite que o administrador instale somente aqueles pacotes que são realmente necessários, evitando ter que instalar ou fazer o download de componentes que não serão utilizados.