O que se entende por "depende" e "pré-depende", e a diferença entre esses dois tipos de requisitos de pacote quando estou instalando algo no Ubuntu?
fonte
O que se entende por "depende" e "pré-depende", e a diferença entre esses dois tipos de requisitos de pacote quando estou instalando algo no Ubuntu?
Conforme extraído deste link: https://www.debian.org/doc/debian-policy/#document-ch-relationships
Existem 5 tipos de dependências:
O significado dos cinco campos de dependência é o seguinte:
Isso declara uma dependência absoluta. Um pacote não será configurado, a menos que todos os pacotes listados em seu campo Depends tenham sido configurados corretamente. O campo Depends deve ser usado se o pacote dependente for necessário para que o pacote dependente forneça uma quantidade significativa de funcionalidade. O campo Depends também deve ser usado se os scripts postinst ou prerm exigirem que o pacote dependente seja descompactado ou configurado para ser executado. No caso do postinst configure, os pacotes dependentes serão descompactados e configurados primeiro.
No caso de ações prerm ou outras postinst, as dependências do pacote normalmente serão pelo menos descompactadas, mas podem ser "meia-instaladas" apenas se uma atualização anterior da dependência falhar. Finalmente, o campo Depends deve ser usado se o pacote dependente for necessário pelo script postrm para limpar completamente após a remoção do pacote. Não há garantia de que as dependências do pacote estejam disponíveis quando o postrm for executado, mas é mais provável que o pacote dependente esteja disponível se o pacote declarar uma dependência (principalmente no caso do postrm remove). O script postrm deve ignorar ações que requerem dependência, se essa dependência não estiver disponível.
Esse campo é como Depends, exceto que ele também força o dpkg a concluir a instalação dos pacotes nomeados antes mesmo de iniciar a instalação do pacote que declara a pré-dependência . Funciona assim, quando um pacote que declara uma pré-dependência está prestes a ser descompactada, a pré-dependência poderá ser satisfeita se o pacote dependente estiver totalmente configurado ou mesmo se o (s) pacote (s) dependente (s) forem descompactados apenas ou no estado "Semi-configurado", desde que tenham sido configurados corretamente em algum momento no passado (e não removido ou parcialmente removido desde então).
Nesse caso, as versões configuradas anteriormente e atualmente descompactadas ou "semi-configuradas" devem atender a qualquer cláusula de versão no campo Pré-dependências. Quando o pacote que declara uma pré-dependência está prestes a ser configurado, a pré-dependência será tratada como um Depends normal. Será considerado satisfeito apenas se o pacote dependente tiver sido configurado corretamente. No entanto, diferentemente do Depends, o Pré-Depends não permite que dependências circulares sejam quebradas. Se uma dependência circular for encontrada ao tentar honrar as pré-dependências, a instalação será abortada.
As pré-dependências também são necessárias se o script pré-instalação depender do pacote nomeado. É melhor evitar essa situação, se possível. As pré-dependências devem ser usadas com moderação, de preferência apenas por pacotes cuja atualização ou instalação prematura prejudicaria a capacidade do sistema de continuar com qualquer atualização que possa estar em andamento.
Versão menor:
O termo "dependência" pode ser usado amplamente para abranger os relacionamentos "Depende" e "Pré-Depende" (e às vezes até outros relacionamentos mais fracos), ou pode ser usado estritamente como sinônimo de "Depends".
A diferença entre os relacionamentos de pacotes "Depende" e "Pré-depende" é que, se X depende de Y, Y deve ser totalmente configurado antes que X seja configurado. (A configuração é a etapa de instalação em que um pacote, uma vez que seus arquivos são descompactados nos locais apropriados - ou seja, uma vez "instalados" - realiza as outras alterações necessárias para que seja possível usar o software que ele fornece. Por exemplo , a configuração de um servidor HTTP pode envolver a garantia de que há um
www
usuário com as habilidades adequadas e um/var/www
diretório com permissões adequadas.) Por outro lado, se o X depende previamente de Y, ele deve ser instalado e (geralmente) totalmente configurado antes que o X seja executado. instalado .Veja a Seção 7.2 do Manual de Políticas Debian para mais detalhes. Cito as duas seções mais relevantes aqui, mas há outras informações nessa seção (e no capítulo 7 em geral) que ajudam a esclarecer como as dependências funcionam.
fonte