Cómo crear su propio repositorio para paquetes en Debian

Hay varias razones por las que querría crear su propio repositorio local. Es una excelente manera de crear un repositorio espejo local para almacenar en caché los paquetes de uso frecuente utilizados por muchas computadoras para ahorrar el uso del ancho de banda, o puede tener algunos paquetes modificados que desea que estén disponibles internamente para el equipo de desarrollo.

En este tutorial, le mostraremos cómo fácilmente crear un repositorio de paquetes Debian local, compatible con las versiones 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 del paquete.

Paso 2: crear un directorio para el repositorio local

Cree un directorio para guardar los paquetes binarios. Para esto example, 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 repositorios local

A los efectos de este tutorial, descargaremos el chrome-paquete del navegador a nuestro repositorio local, porque 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 sudo.

$ sudo su

Primero, crearemos un archivo de lanzamiento ejecutando el siguiente comando:

# dpkg-scanpackages . /dev/null > Release

Debería obtener un resultado similar dependiendo de cuántos paquetes 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.

A continuación, escanee todos los archivos deb en el directorio y cree un archivo Packages.gz apropiado

# dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz

Producción:

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 sencillo bash script y ejecútelo cada vez que agregue nuevos paquetes.

Para enumerar la estructura del directorio del repositorio local, ejecute el comando ls:

$ ls -l

Producción:

-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 con 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, todas las dependencias se resolverán e instalarán por usted, siempre que 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 Debian local y agregar / eliminar paquetes localmente. Estos pasos se aplican a la mayoría de las distribuciones basadas en Debian.