Es posible crear un repo local de forma muy sencilla. Ya sea con paquetes sueltos .deb o con la estructura de directorios que viene en los DVDs.
Para descargar los DVDs se ha de hacer con jigdo así: Descargar los 21 DVDs de Debian 12
Una vez los tienes las imágenes isos puedes por ejemplo guardarlas en un directorio de un pendrive llamado isos. Y dentro de ese directorio crear los directorios dvd1, dvd2, dvd3, …, dvd19, dvd20, dvd21
De forma que se puede copiar en cada uno de esos nuevos directorios (los dvd1, etc …) el directorio pool que viene en cada uno de los DVDs.
El directorio pool lleva la mandanga buena, los paquetes deb.
La forma de extraer el contenido puede ser montando la iso y copiando los archivos. Otra opción es descomprimir los archivos y luego solamente quedarte con el directorio pool.
mount -o loop nombreiso.iso /tmp/temporal 7z x nombreiso.iso
Cuando ya tenemos todos los directorios pool de todos los dvds podemos definir en /etc/apt/sources.list los repos de cada DVD
deb [trusted=yes] file:/media/usb/isos/dvd1/ ./ deb [trusted=yes] file:/media/usb/isos/dvd2/ ./ deb [trusted=yes] file:/media/usb/isos/dvd3/ ./ deb [trusted=yes] file:/media/usb/isos/dvd4/ ./ deb [trusted=yes] file:/media/usb/isos/dvd5/ ./ deb [trusted=yes] file:/media/usb/isos/dvd6/ ./ deb [trusted=yes] file:/media/usb/isos/dvd7/ ./ deb [trusted=yes] file:/media/usb/isos/dvd8/ ./ deb [trusted=yes] file:/media/usb/isos/dvd9/ ./ deb [trusted=yes] file:/media/usb/isos/dvd10/ ./ deb [trusted=yes] file:/media/usb/isos/dvd11/ ./ deb [trusted=yes] file:/media/usb/isos/dvd12/ ./ deb [trusted=yes] file:/media/usb/isos/dvd13/ ./ deb [trusted=yes] file:/media/usb/isos/dvd14/ ./ deb [trusted=yes] file:/media/usb/isos/dvd15/ ./ deb [trusted=yes] file:/media/usb/isos/dvd16/ ./ deb [trusted=yes] file:/media/usb/isos/dvd17/ ./ deb [trusted=yes] file:/media/usb/isos/dvd18/ ./ deb [trusted=yes] file:/media/usb/isos/dvd19/ ./ deb [trusted=yes] file:/media/usb/isos/dvd20/ ./ deb [trusted=yes] file:/media/usb/isos/dvd21/ ./
También se podría todo junto pero … también por separado.
En cada directorio para que funcione apt con estos repos locales se ha de generar el archivo Packages.gz . No dentro de pool y si a la misma altura.
Eso se hace con el comando siguiente:
dpkg-scanpackages pool/ | gzip > Packages.gz
Y con eso si todo va bien se hace un apt update y andando.