Simplesmente, os bloqueios são usados para sua intenção original: impedir que outros processos passem por instalações. Imagine o seguinte cenário:
-
Process1 é iniciado para instalar
basex
, que depende dedefault-jre
-
O Process2 começa a remover
default-jre
.basex
já está em andamento, por isso não pode ser informado sobre essa remoção. -
Process2 termina.
-
Process1 termina. Existe um sistema não funcional. Isso é pior se o mesmo pacote for instalado e removido simultaneamente.
Embora isso possa ser resolvido mantendo um bloqueio por pacote mantido para o pacote e quaisquer pacotes que devem existir (Dependências), não sei por que isso não é feito.
Um problema semelhante pode ocorrer se houver pacotes conflitantes. Por exemplo, um pacote pode ser instalado e outro conflitante pode ser instalado simultaneamente (como dependência ou não).