Cenário: Na configuração do sistema controlada por versão com base no Puppet, Chef etc., é necessário reproduzir um determinado estado do sistema. Isso é feito especificando explicitamente as versões do pacote do sistema.
Recentemente, encontramos um problema em que certas versões de pacotes estavam faltando nos repositórios Debian. Um exemplo: O pacote "patch" foi necessário na versão 2.7.5-1 + deb9u1, mas apenas 2.7.5-1 + deb9u2 estava disponível. Outro exemplo ainda mais grave: "linux-headers-4.9.0-9-common" é necessário (devido à instalação do kernel associado) e apenas "linux-headers-4.9.0-11-common" está disponível.
Isso torna impossível reproduzir um certo estado de um sistema.
Os pacotes acima são apenas exemplos (que de fato encontrei). Estou interessado em entender e resolver o problema geral.
Qual é a idéia por trás dessas atualizações, 'desaparecendo' de pacotes e versões de pacotes?
Onde posso obter versões anteriores (não versões realmente antigas, mas versões com algumas semanas) dos pacotes Debian? Deve ser possível automatizar o processo de instalação de maneira geral.
stable
permanece consistente, pelo menos até o próximo ponto. O stable-updates, testing e unstable contêm apenas a versão mais recente de qualquer pacote. Para qualquer outra coisa, você terá que procurar em archive.debian.org (ou snapshot.debian.org, conforme mencionado na resposta da SK)
linux
nome do pkg é uma exceção: em geral, os pacotes do Debian stable seguem o mesmo nome de pacote e apenas alteram o número da versão. linux-image-amd64
nunca muda de nome e depende sempre das últimas linux-image-4.9.0-*
. O novo linux-image-4.9.0-*
nome do pkg marca as alterações incompatíveis da ABI do kernel necessárias para portar algumas correções de bugs e permite lidar com a recompilação necessária dos módulos personalizados (dkms, etc.). Da mesma forma para linux-headers-*
.
apt-get changelog packagename