Cómo crear un servidor de repositorio de 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 utilizando aptitud como el sistema de administración de paquetes principal, como Debian o Mint. Por lo general, es posible que desee configurar un repositorio local para guardar el ancho de banda de Internet.

En este tutorial aprenderás:

  • Cómo instalar el software requerido en el servidor
  • Cómo seleccionar qué repositorios reflejar en el servidor
  • Cómo reflejar 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, considere eso:

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

Actualización de la lista de paquetes de los reposos locales.

Requisitos y convenciones de software utilizados

Requisitos de software y convenciones de línea de comandos de Linux
Categoría Requisitos, convenciones o versión de software utilizada
Sistema Ubuntu 18.04.2 (Beaver) LTS
Software Apache http 2.x, apto-espeluznante
Otro Acceso privilegiado a su sistema Linux como root o a través del 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 raíz directamente como un usuario raíz o mediante el uso de sudo dominio
ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado

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

  1. Instalación del software requerido en el servidor.

    Como primer paso necesitamos instalar el servidor Apache HTTP que está en el paquete nombrado apache2, con el comando:

    $ sudo apt install apache2


    Instalación de Apache HTTP

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

    $ sudo systemctl habilita apache2 

    Si todo está bien, pasaremos al directorio predeterminado de DocumentRoot (que es/var/www/html).
    Allí podemos crear el subdirectorio /var/www/html/ubuntu y asignarlo al propietario apropiado, en este caso datos www (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 el DocumentRoot o al menos la subcarpeta de Ubuntu esté en un sistema de archivos que pertenece 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 refleja los paquetes SRC; Entonces, 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 reflejar los paquetes para diferentes versiones, los requisitos de espacio aumentarán considerablemente.

  2. La herramienta principal que nos permite crear un repositorio local es apto-espeluznante, Para instalarlo ejecutar:
    $ sudo apt install apt-espiror 

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

    $ sudo apt actualización 
  3. Seleccionar qué repositorios reflejar en el servidor.

    Una vez que se instala apt-mirror, podemos hacer una copia de copia de seguridad de su archivo de configuración /etc/apt/espejo.lista, Después de eso, se asegura de que la línea que contenga la opción establecer base_path señala la ruta correcta para nuestro repositorio (por defecto es/var/spool/apt-mirror).

    $ sudo cp/etc/apt/espejo.Lista/etc/apt/espejo.lista.organizar 

    Entonces ahora puede usar su editor favorito (VI o Nano, por ejemplo) para cambiar la opción Base_Path en el espejo.Lista de archivo a /var/www/html/ubuntu; También debe especificar que está reflejando los reposos de distribución biónica (cambio en consecuencia si tiene una versión de Ubuntu diferente), siempre en el espejo.Lista del archivo de configuración.

    espejo.Lista del archivo de configuración

    En caso de que no tenga mucho espacio en el disco, puede elegir no reflejar los paquetes SRC; Entonces comentarás las líneas relativas:

    espejo.Lista del archivo de configuración

    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. Reflejando los repositorios seleccionados localmente en el servidor.

    Ahora es el momento de crear un espejo local, tenga en cuenta que un reflejo inicial (de archivo.ubuntu.comunicarse Solo para este tutorial) puede tomar mucho tiempo y reducir la velocidad de su conexión, así que le sugiero que comience este trabajo por la noche.
    Para comenzar a reflejar los paquetes Remote Repos al servidor local, simplemente ejecute el comando:

    $ sudo apto-espeluznante 

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

    Eventualmente llegaremos al punto cuando la limpieza.SH y Postmirror.Se ejecutan los scripts SH, es una señal de que el proceso de reflejo se ha completado.

    Fin del proceso de reflejo.
  5. Configuración del proceso de sincronización automática mediante el uso de Cron Scheduler.

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

    $ sudo crontab -e 

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

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

    Y guardar y salir (usando vi, nano o cualquier editor que esté establecido).

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

  1. Configuración de la lista de repositorio local.

    En cualquier cliente que use nuestro repositorio local, necesitamos editar el archivo de configuración /etc/apt/fuentes.lista Especificar nuestro repositorio local y deshabilitar 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/fuentes.lista Archivo que se refiere a repositorios que no se reflejan en nuestro servidor, por ejemplo, en este caso, cualquier línea que comience con Deb-Src y conteniendo bionic-backports han sido comentados.

    Si no hace eso, puede obtener el error
    El archivo de lanzamiento no se ha encontrado Al ejecutar la actualización apt de comando en el cliente.

    En primer lugar, reemplazamos cualquier archivo de cadenas.ubuntu.com con nuestra IP de 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/Archivo \.Ubuntu \.com/10 \.0 \.0 \.\ 42/g "/etc/apt/fuentes.lista 

    Este comando creará el archivo de copia de seguridad /etc/apt/fuentes.lista.bak0 y reemplace cualquier archivo.ubuntu.comunicarse hacer una cadena con 10.0.0.42.

    Un ajuste adicional se vuelve a funcionar de esta manera:

    $ sudo sed -i.Bak1 "S/Ubuntu/Ubuntu \/Mirror \/Archive \.Ubuntu \.com \/ubuntu/g "\/etc/apt/fuentes.lista 

    Esto es necesario ya que apt-espiror agrega la ruta espejo/archivo.ubuntu.com/ubuntu a nuestro camino base. Aquí se creará un archivo de copia de seguridad adicional

    /etc/apt/fuentes.lista.bak1. 

    Para el propósito de este tutorial, solo estamos reflejando paquetes o repositorios de Archive.ubuntu.com; Por supuesto que puede agregar otros repositorios no oficiales en el espejo.Lista de archivo en el servidor, pero luego debe volver a ejecutar apt-espiror allí y editar en cualquier cliente las fuentes.Lista del archivo en consecuencia.

  2. Actualizar el índice de repositorio local.
    Ahora debe asegurarse de que el puerto 80 no esté bloqueado por el firewall del cliente y luego puede ejecutar:
    $ sudo apt actualización 

    Y estás listo para ir.

    Actualización de la lista de paquetes de los reposos locales.

Conclusión

Configurar un repositorio local en Ubuntu no es difícil como puede parecer y puede ser útil siempre que tenga recursos de discos locales y red local adecuados.

Tutoriales de Linux relacionados:

  • Espejos de ubuntu
  • Cosas para instalar en Ubuntu 20.04
  • Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
  • Cómo buscar herramientas de piratería adicionales en Kali
  • Ubuntu 20.04 Guía
  • Mint 20: Mejor que Ubuntu y Microsoft Windows?
  • Cosas para instalar en Ubuntu 22.04
  • Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
  • Ubuntu 22.04 Guía
  • Ubuntu 20.04 trucos y cosas que quizás no sepas