Io faccio la stessa identica cosa, ma a me le versioni vecchie vengono ripulite, anche se nel tempo.
Mi spiego: con istruzioni come questa:
debmirror /root/debian/ \
-p -v --nosource --pdiff=none --passive \
-h=ftp.it.debian.org --method=http -r debian/ \
--dist=testing,unstable --section=main,contrib,non-free --arch=i386 \
--ignore-missing-release --ignore-release-gpg --ignore-small-errors
tengo aggiornato un repository locale delle sole componenti testing ed unstable delle sezioni
main/contrib/non-free, leggendo dal mirror italiano del repository ufficiale. Ora, se il pacchetto
pippo è in versione 0.65 in testing e 0.67 in unstable, nel repository li avrò entrambi; al momento in cui la 0.67 passa in testing ed in unstable finisce la 0.73, al primo update
debmirror mi scarica la 0.73 e mi rimuove l'ormai obsoleta 0.65, il che è coerente con la logica con cui li prelevo.
In altri termini, è giusto che cancelli i pacchetti quando sono sorpassati per il criterio con cui li stai scaricando, non prima. Se il tuo script governa simultaneamente più livelli di stabilità come faccio io, il fatto che non vengano rimossi subito ha un senso.