Tenho um pacote antigo em um sistema antigo e quero atualizar meu sistema operacional. Fazer com que o pacote específico funcione em sistemas mais novos pode ser possível, mas não quero mexer com isso agora, ainda quero usá-lo. Quando experimentei o Ubuntu 23.04, entrei no pesadelo da dependência.
De qualquer forma, #apt-mark hold <package>
mantém as dependências do pacote e também do pacote? O apt-mark hold faz alguma coisa para evitar a quebra do pacote? ou apenas impede atualizações do pacote específico?
Também contém
apt-mark hold X
as dependências?Às vezes isso acontece devido à natureza da lógica de dependência do apt: Quando o pacote X depende de versões específicas de Y e Z, então Y e Z podem ser bloqueados para atualização.
Não é uma "retenção" separada. As versões utilizáveis se Y e Z forem especificadas no arquivo de controle X. Você pode vê-los olhando
apt show X
.Exemplo para o
hello
pacote: Alibc6
dependência deve ser versão 2.34 ou superior.O pesadelo normalmente ocorre quando outro software que também usa Y requer versões mais recentes.
Exemplo: W também depende de Y. Uma nova versão de W depende de Y > 2.0 para usar um recurso de Y introduzido em 2.0. Y bloqueado abaixo de 2.0 significa que W também deve permanecer em uma versão mais antiga onde Y 1.8 é aceitável.
Isso confunde os usuários: W não parece relacionado a X. Mas eles estão... através da dependência compartilhada.