Esta operación la única "pega" que puede llegar a tener es el hecho de que es necesario tener abundante espacio libre en el disco duro, pero quitando ese detalle, puede sernos una solución realmente útil, con lo que vamos a ello.
Para crear este repositorio, necesitaremos tener dos herramientas instaladas; una de ellas, muy conocida por muchos, sería apache2, mientras que la otra que es bastante menos conocida, sería apt-mirror, con lo que lo primero que haremos será instalarlos desde los repositorios oficiales del sistema (que todavía no serían locales) tal y como hacemos habitualmente.
apt-get install apache2 apt-mirror
La instalación es automática, si bien está instalación no hace que tengamos automáticamente los repositorios en local... Lo primero que necesitamos hacer es bajarnos toda la información, paquetes y otros datos de los repositorios que nosotros queramos en local, si bien para ello lo primero que habría que hacer sería configurar el archivo de configuración de apt-mirror, que se encontraría en /etc/apt/mirror.list. El fichero estaría compuesta por tres secciones: Configuración, repositorios a obtener, repositorios a limpiar. La parte más importante sería la de configuración, ya que es la que determina donde guardar los repositorios, la arquitectura en la que queremos que se descarguen los repositorios, etc... Un fichero de configuración real basado en un Debian 8 con arquitectura amd64 sería el siguiente:
- ############# config ##################
- #
- set base_path /var/spool/apt-mirror
- #
- set mirror_path $base_path/mirror
- set skel_path $base_path/skel
- set var_path $base_path/var
- # set cleanscript $var_path/clean.sh
- set defaultarch amd64
- # set postmirror_script $var_path/postmirror.sh
- # set run_postmirror 0
- set nthreads 20
- set _tilde 0
- #
- ############# end config ##############
- deb http://ftp.es.debian.org/debian/ jessie main contrib non-free
- deb-src http://ftp.es.debian.org/debian/ jessie main contrib non-free
- deb http://ftp.es.debian.org/debian/ jessie-updates main contrib non-free
- deb-src http://ftp.es.debian.org/debian/ jessie-updates main contrib non-free
- clean http://ftp.es.debian.org/debian
Gracias a esta configuración podríamos descargarnos los repositorios "estándar" de Debian 8 (Jessie) dentro del directorio /var/spool/apt-mirror, dentro del cual habrían tres carpetas: La carpeta mirror, la carpeta skel y la carpeta var.
Con los cambios guardados, únicamente habría que ejecutar el comando:
apt-mirror
Este comando hará que se creen las carpetas mirror, skel y var dentro del directorio /var/spool/apt-mirror y que se descargue toda la información de los repositorios en éstos; y al decir toda sería TODA. Es decir que nos estaríamos descargando la información necesaria para que nuestro equipo se pueda convertir en un repositorio.
El tamaño de la información descargada variaría dependiendo de la cantidad de repositorios que nos queramos descargar, pero por ejemplo, en mi caso en particular la descarga sería de 47 GB; una descarga que tomará MUCHO tiempo. También podríamos escoger menos repositorios con el fin de que sea de menor tamaño, pero a nivel conceptual este sería el proceso. Imaginemos que tenemos descargado todo el contenido... Éste estaría descargado, pero eso no significaría que fuese accesible por el resto de equipos; de ahí la necesidad de tener apache2 instalado. Ahora mismo el directorio /var/spool/apt-mirror/mirror tendría que tener la siguiente estructura en su interior:
Queremos ser capaces de acceder vía web a los repositorios, tal y como haríamos con un repositorio real, pero en una red local... Con lo que tendríamos que hacer que dicho contenido pueda ser accedido desde la carpeta /var/www; mover el contenido a dicha carpeta sería engorroso y además cualquier futura actualización se bajaría de nuevo dentro del directorio /var/spool/apt-mirror, con lo que lo más limpio y práctico sería realizar un enlace simbólico desde /var/www a los directorios deseados; que en este caso sería únicamente el directorio Debian con lo que el enlace simbólico que haríamos sería el siguiente:
ln-s/var/spool/apt-mirror/mirror/ftp.es.debian.org/debian//var/www/debian
Ahora, para acceder a los repositorios de esta máquina, supongamos que ésta tiene la ip 192.168.1.10, para acceder a los repositorios de aquí en la red local, pondríamos estas líneas dentro del fichero /etc/apt/sources.list
- deb http://192.168.1.10/debian/ jessie main contrib non-free
- deb-src http://192.168.1.10/debian/ jessie main contrib non-free
- deb http://192.168.1.10/debian/ jessie-updates main contrib non-free
- deb-src http://192.168.1.10/debian/ jessie-updates main contrib non-free
Con esto podríamos acceder a unos repositorios que se hallen en la red local sin necesidad de acceder a Intenet.
Espero que os haya resultado útil.
Saludos.