Isso é algo para um livro completo de 600 páginas! 8-) Mais ou menos, alguém obtém um projeto de software, compila e cria um pacote e o armazena em um repositório.
Os pacotes recebem uma versão para que o sistema possa reconhecer versões antigas e mais recentes.
O sistema de pacotes em seu computador pode acessar o repositório e ver se novas versões de pacotes instalados em seu computador estão disponíveis. Se assim for, oferece-lhe a possibilidade de atualizar.
Há muito mais do que isso. Por exemplo, ao atualizar um servidor que você deseja parar o servidor, faça o upgrade e, em seguida, reinicie o servidor. Essas etapas são realizadas pelos scripts de pré e pós conforme descrito nesta página:
Outro ponto importante, pacotes diferentes podem não ser compatíveis entre si. Por exemplo, se você instalar o Postfix, não poderá instalar o sendmail porque ambos oferecem a mesma funcionalidade (embora haja maneiras de oferecer o software por meio de links alternativos). Da mesma forma, instalar o Apache e o httplight geralmente entra em conflito porque ambos usam a porta 80 padrão. Novamente, você pode corrigir o conflito alterando as configurações de cada servidor, mas, por padrão, o sistema operacional provavelmente dirá a você que não é possível fazer isso.
Você pode querer ler sobre o Manual de políticas do Debian
porque te dá um pouco de informação a esse respeito.