Existen varias razones por las que desearía crear su propio repositorio local. Es una excelente manera de crear un repositorio espejo local para almacenar en caché los paquetes utilizados con frecuencia por muchas computadoras para ahorrar el uso de ancho de banda, o puede que tenga algunos paquetes modificados que desea que estén disponibles internamente para el equipo de desarrollo.
En este tutorial, le mostraremos cómo crear fácilmente un repositorio local de paquetes Debian , compatible con las versiones de Debian y Ubuntu.
Paso 1:Instalación del paquete requerido
En los sistemas basados en Debian, todos los repositorios son administrados por las utilidades APT (apt, apt-get, apt-cache, etc.). El paquete dpkg-dev es necesario para la creación de un repositorio local compatible con APT.
Primero actualice los paquetes del sistema usando el siguiente comando:
$ sudo apt update && sudo apt upgrade
A continuación, instale el dpkg-dev paquete escribiendo lo siguiente:
$ sudo apt-get install dpkg-dev
Cuando finalice la instalación del paquete, continúe con la creación de un directorio para los archivos de su paquete.
Paso 2:Crear un Directorio para el Repositorio Local
Cree un directorio para guardar paquetes binarios. Para este ejemplo, usaremos /opt/local/debs, pero puede usar cualquier directorio que desee.
$ sudo mkdir -p /opt/local/debs
A continuación, cambie el directorio:
$ cd /opt/local/debs
Paso 3:agregar paquetes al directorio de repositorio local
A los efectos de este tutorial, descargaremos el paquete del navegador Chrome a nuestro repositorio local, ya que no se encuentra en el repositorio predeterminado de Ubuntu:
$ sudo wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
Puede copiar o descargar tantos paquetes como desee en este paso.
Paso 4:Cree el Meta del paquete de repositorio requerido para APT
Para ello, debemos ejecutar varios comandos dpkg-scanpackages. Cambiaré a la cuenta de usuario raíz porque estoy usando el directorio /opt/local para omitir el uso de sudo.
$ sudo su
Primero, crearemos un archivo de lanzamiento ejecutando el siguiente comando:
# dpkg-scanpackages . /dev/null > Release
Debería obtener un resultado similar según la cantidad de paquetes que haya agregado al repositorio local:
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
Luego, escanee todos los archivos deb en el directorio y cree un archivo Packages.gz apropiado
# dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz
Salida:
dpkg-scanpackages: warning: Packages in archive but missing from override file:
dpkg-scanpackages: warning: google-chrome-stable
dpkg-scanpackages: info: Wrote 1 entries to output Packages file.
Tenga en cuenta que debe ejecutar estos comandos cada vez que agregue nuevos paquetes deb a su directorio de repositorio local. También puede crear un script bash simple y ejecutarlo cada vez que agregue nuevos paquetes.
Para enumerar la estructura del directorio del repositorio local, ejecute el comando ls:
$ ls -l
Salida:
-rw-r--r-- 1 root root 83325072 May 8 02:29 google-chrome-stable_current_amd64.deb
-rw-r--r-- 1 root root 761 May 17 20:44 Packages.gz
-rw-r--r-- 1 root root 1321 May 17 20:39 Release
Paso 5:agregar nuestro repositorio local a Sources.list
El último paso es editar el archivo sources.list. Edite el archivo usando el editor de su elección:
$ sudo nano /etc/apt/sources.list
Agregue la siguiente línea a su /etc/apt/sources.list:
deb [trusted=yes] file:/opt/local/debs ./
Ahora probaremos nuestro repositorio local en acción.
Paso 6:Verificación
Podemos verificar instalando o eliminando los paquetes del repositorio local.
Primero debemos actualizar los paquetes:
$ sudo apt-get update
Ahora instalamos nuestro paquete como de costumbre usando apt-get:
$ sudo apt-get install google-chrome-stable
Ahora sus paquetes locales se pueden instalar, actualizar y eliminar usando Synaptic, aptitude y los comandos apt:apt-get, apt-cache, etc. Cuando ejecute apt-get install, cualquier dependencia se resolverá e instalará automáticamente, siempre y cuando como se pueden cumplir.
Podemos eliminar fácilmente nuestros paquetes instalados de la misma manera que con cualquier paquete instalado en nuestro sistema:
$ sudo apt-get remove google-chrome-stable
Conclusión
En este tutorial, hemos aprendido cómo crear nuestro propio repositorio local de Debian y agregar/eliminar paquetes localmente. Estos pasos se aplican a la mayoría de las distribuciones basadas en Debian.