Configurar un repositorio local
APT es un gestor de paquetes debian (.deb). El repositorio es un indice para buscar, instalar y actualizar paquetes en Linux. La idea de guia es configurar un repositorio "local".Se puede crear un repositorio complejo o simple. En está guía se creará un repositorio Simple.
La ruta utilizada a modo de ejemplo sera:
/usr/local_repoEl proceso se compone de tres paso:
- Descargar y almacenar los paquetes.
- Escaneo del directorio local, para crear el archivo de indice.
- Agregar la ruta del Archivo indice a
/etc/apt/source.list.
Descarga de paquetes Debian
Para la descarga de paquetas podemos seleccionar cualquiera de los mirrors de https://www.debian.org/mirror/list. Los mirrors principales suelen tener la estructuraftp.<country>.debian.org y los secundarios que pueden ser de cualquier otro organismo, pero estos pueden tener restricciones en la descarga o acceso.Los paquetes de instalación se encuentran en el directorio
/pool/que contiene tres subdirectorios:- main: Contien el gran mayoría de los paquetes de debian que cumplen con los requisitos de ser libres y con los 10 principios de Debian.
- contrib: Cumple los requisitos debian pero usa paquetes no libres para su compilación o ejecución.
- non-free: Son los paquetes privativos como de Intel,atmel etc. Sobretodo podemos encontrar el firmware de aquellos dispositivos privativos.
Escanear el directorio con "dpkg-scanpackages"
dpkg-scanpackages busca los paquetes binarios de Debian en un árbol de directorios, creando un fichero "Packages".El comando espera el directorio (path) y el archivo de anulación. Para un repo simple no es necesario, por tanto mandamos la salida a
/dev/null.A la hora de crear el repositorio tenemos que canalizar la salida STDOUT al archivo Packages.gz con gzip, que funcionara como indice del repositorio.
$ sudo dpkg-scanpackages <directorio-del-repositorio> /dev/null |gzip - c9 > <directorio-del-repositorio>/Packages.gz
Añadir fichero Release y firma
Para evitar los mensajes de seguridad de apt debemos crear el archivo Release y Release.gpg. Para crear el archivo Release utilizaremos el comandoapt-ftparchive con la siguiente línea de comando:Para firmar el archivo debemos utilizar la herramienta gpg con el siguiente comando:![]()
$ sudo apt-ftparchive release <directorio-del-repositorio> > <directorio-del-repositorio>/Release
$ sudo gpg --sign -ba -o <directorio-del-repositorio>/Release.gpg <directorio-del-repositorio>/Release
- Nota: Si no tenemos configurada una firma, la podemos crear mediante:
$ sudo gpg --gen-key. Finalmente añadiremos lapublic keymediante:
$ sudo --export --armor > Public.key # Exportamos la Clave Publica al fichero $ sudo apt-key add Public.key # Añadimos la clave a apt
Actualizar source.list
Para añadir el directorio como fuente, es necesario modificar el archivosource.list que se encuentra en /etc/apt/source.list.Le añadiremos la siguiente linea:
y ejecutamos
deb file:<ruta_directorio_local> ./ # Directorio Local
$ sudo apt update.