GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo crear un servidor de repositorio de Ubuntu

Esta guía mostrará cómo configurar un servidor de repositorio local basado en Ubuntu Bionic, pero se puede adaptar a una versión anterior de Ubuntu o incluso a cualquier distribución que utilice Aptitude como sistema principal de gestión de paquetes, como Debian o Mint. Por lo general, es posible que desee configurar un repositorio local para ahorrar ancho de banda de Internet.

En este tutorial aprenderás:

  • Cómo instalar el software necesario en el servidor
  • Cómo seleccionar qué repositorios duplicar en el servidor
  • Cómo duplicar la selección de repositorios localmente en el servidor
  • Cómo configurar el cliente Linux para usar el servidor de repositorio local

Como se indicó anteriormente, no estamos considerando un espejo público o de país para este tutorial, pero si desea implementarlo, tenga en cuenta lo siguiente:

  • El ancho de banda de su red se vuelve muy importante
  • Debe registrar el repositorio en la lista de espejos de Ubuntu
  • Debe sincronizar el espejo al menos cuatro veces al día
  • Debido a que debe duplicar todas las versiones anteriores, es posible que necesite 2 TB o más de espacio en disco


Actualización de la lista de paquetes desde los repositorios locales.

Requisitos de software y convenciones utilizadas

Cómo crear un servidor de repositorio de Ubuntu paso a paso

  1. Instalar el software necesario en el servidor.

    Como primer paso, debemos instalar el servidor Apache HTTP que se encuentra en el paquete llamado apache2 , con el comando:

    $ sudo apt install apache2

    Instalando Apache HTTP

    Luego, asegúrese de que el servicio se ejecute al inicio:

    $ sudo systemctl enable apache2
    

    Si todo está bien, nos moveremos al directorio DocumentRoot predeterminado (que es /var/www/html).
    Allí podemos crear el subdirectorio /var/www/html/ubuntu y asignarlo al propietario correspondiente, en este caso www-data (el usuario bajo el cual se ejecuta Apache HTTP).

    $ sudo mkdir -p /var/www/html/ubuntu
    $ sudo chown www-data:www-data /var/www/html/ubuntu
    

    Se recomienda encarecidamente que DocumentRoot o al menos la subcarpeta ubuntu esté en un sistema de archivos que pertenezca a un volumen lógico; de esta manera podemos ampliarlo en línea, sin tiempo de inactividad.
    En el momento de mi prueba, 171,5 GiB es el espacio mínimo absoluto necesario si también se duplican los paquetes src; por lo tanto, para planificar el futuro, se recomienda tener al menos 300 GiB de espacio en disco.

    Esto es principalmente una estimación si elige una versión de Ubuntu; si es necesario duplicar paquetes para diferentes versiones, los requisitos de espacio aumentarán considerablemente.

  2. La principal herramienta que nos permite crear un repositorio local es apt-mirror , para instalarlo ejecuta:

    $ sudo apt install apt-mirror
    

    En caso de que no se encuentre el paquete, asegúrese de actualizar primero la lista de paquetes con:

    $ sudo apt update
    
  3. Seleccionar qué repositorios duplicar en el servidor.

    Una vez instalado apt-mirror podemos hacer una copia de seguridad de su archivo de configuración /etc/apt/mirror.list , después de eso, asegúrese de que la línea que contiene la opción set base_path apunta a la ruta correcta para nuestro repositorio (por defecto es /var/spool/apt-mirror).

    $ sudo cp /etc/apt/mirror.list /etc/apt/mirror.list.org
    

    Ahora puede usar su editor favorito (vi o nano, por ejemplo) para cambiar la opción base_path en el archivo mirror.list a /var/www/html/ubuntu; también debe especificar que está duplicando los repositorios de la distribución biónica (cambie en consecuencia si tiene una versión diferente de Ubuntu), siempre en el archivo de configuración mirror.list.

    archivo de configuración mirror.list

    En caso de que no tenga mucho espacio en el disco, puede optar por no reflejar los paquetes src; entonces comentarás las líneas relativas:

    archivo de configuración mirror.list

    A continuación, copia un script importante en /var/www/html/ubuntu/var/

    $ sudo mkdir -p /var/www/html/ubuntu/var 
    $ sudo cp /var/spool/apt-mirror/var/postmirror.sh /var/www/html/ubuntu/var/
    
  4. Duplicar los repositorios seleccionados localmente en el servidor.

    Ahora es el momento de crear un espejo local, tenga en cuenta que un espejo inicial (desde archive.ubuntu.com solo para este tutorial) puede llevar mucho tiempo y ralentizar su conexión, por lo que le sugiero que comience este trabajo por la noche.
    Para comenzar a duplicar los paquetes de repositorios remotos en el servidor local, simplemente ejecute el comando:

    $ sudo apt-mirror
    

    Si lo necesita, puede interrumpir este proceso (con el clásico combo CTRL+C) y reiniciarlo más tarde; se reanudará desde donde se quedó.

    Eventualmente llegaremos al punto en que se ejecutan los scripts clean.sh y postmirror.sh, es una señal de que el proceso de duplicación se ha completado.

    Fin del proceso de duplicación.

  5. Configuración del proceso de sincronización automática mediante el programador cron.

    Después de completar nuestra primera sincronización, necesitamos crear un trabajo cron para asegurarnos de que tenemos un repositorio local actualizado automáticamente; por ejemplo, queremos que esta tarea se ejecute todas las noches a las 2:00 a. m. y, por lo tanto:

    $ sudo crontab -e
    

    Luego editamos el crontab para agregar la siguiente línea:

    00 	02 	*	 *	 *	/usr/bin/apt-mirror
    

    Y guarde y salga (usando vi, nano o cualquier editor configurado).

Configuración del cliente Linux para usar el servidor de repositorio local

  1. Configuración de la lista de repositorios locales.

    En cualquier cliente que vaya a usar nuestro repositorio local necesitamos editar el archivo de configuración /etc/apt/sources.list especificando nuestro repositorio local y deshabilitando cualquier remoto.

    En nuestro caso se han descargado los siguientes repositorios:

    Repositorios locales del servidor

    NOTA

    Se recomienda comentar cualquier línea en el /etc/apt/sources.list archivo que hace referencia a repositorios no reflejados en nuestro servidor, por ejemplo, en este caso, cualquier línea que comience con deb-src y que contiene bionic-backports han sido comentados.

    Si no lo hace, es posible que obtenga el error
    Release file has not been found al ejecutar el comando apt update en el cliente.

    En primer lugar, reemplazamos cualquier cadena archive.ubuntu.com con nuestra IP espejo local, en este caso 10.0.0.42. Por supuesto, su dirección IP local podría ser diferente.

    $ sudo  sed -i.bak0 "s/archive\.ubuntu\.com/10\.0\.0\.\42/g" /etc/apt/sources.list
    

    Este comando creará el archivo de respaldo /etc/apt/sources.list.bak0 y reemplace cualquier archive.ubuntu.com cadena con 10.0.0.42 .

    Se está ejecutando de nuevo un ajuste adicional sed de esta manera:

    $ sudo  sed -i.bak1 "s/ubuntu/ubuntu\/mirror\/archive\.ubuntu\.com\/ubuntu/g" \ /etc/apt/sources.list
    

    Esto es necesario ya que apt-mirror agrega la ruta mirror/archive.ubuntu.com/ubuntu a nuestro camino base. Aquí se creará otro archivo de copia de seguridad

    /etc/apt/sources.list.bak1.
    

    A los efectos de este tutorial, solo duplicamos paquetes o repositorios de archive.ubuntu.com; por supuesto, puede agregar otros repositorios no oficiales en el archivo mirror.list en el servidor, pero luego debe volver a ejecutar apt-mirror allí y editar en cualquier cliente el archivo sources.list en consecuencia.

  2. Actualice el índice del repositorio local.
    Ahora debe asegurarse de que el firewall del cliente no bloquee el puerto 80 y luego puede ejecutar:

    $ sudo apt update
    

    Y estás listo para ir.

    Actualización de la lista de paquetes desde los repositorios locales.

Conclusión

Configurar un repositorio local en Ubuntu no es tan difícil como parece y puede ser útil siempre que tenga una red local y recursos de disco adecuados.


Ubuntu
  1. Cómo instalar PostgreSQL en Ubuntu 18.04

  2. Cómo crear un usuario Sudo en Ubuntu

  3. Cómo instalar MySQL en Ubuntu 18.04

  4. Cómo crear una copia de seguridad

  5. Cómo instalar Zimbra 8.6 en el servidor Ubuntu 14.04

Cómo configurar el servidor Bacula en Ubuntu 16.04

Cómo instalar el servidor OpenSIPS en Ubuntu 15.04

Cómo crear un servidor de correo completo en Ubuntu

Cómo encontrar el mejor espejo de repositorio APT de Ubuntu

Cómo instalar Plex Media Server en Ubuntu 16.04 Server/Desktop

Cómo crear un servidor de Minecraft en Ubuntu 20.04

    Requisitos de software y convenciones de la línea de comandos de Linux
    Categoría Requisitos, convenciones o versión de software utilizada
    Sistema Ubuntu 18.04.2 (Castor biónico) LTS
    Software Apache http 2.x, apt-mirror
    Otro Acceso privilegiado a su sistema Linux como root o a través de sudo comando, Mínimo 200 GB de espacio en disco para el repositorio
    Convenciones # – requiere que los comandos de Linux dados se ejecuten con privilegios de root, ya sea directamente como usuario root o mediante el uso de sudo comando
    $ – requiere que los comandos de Linux dados se ejecuten como un usuario normal sin privilegios