Cómo crear un servidor de repositorio de Ubuntu
- 2745
- 738
- Alejandro Duran
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
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 dominiops - 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
- 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 HTTPLuego 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 casodatos 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.
- 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
- 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ónestablecer 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
espejo.Lista del archivo de configuración/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.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/
- 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. - 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
- 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 conDeb-Src
y conteniendobionic-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 cualquierarchivo.ubuntu.comunicarse
hacer una cadena con10.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.
- 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
- « Cómo consultar la versión del navegador de Google Chrome
- Red no administrada en Debian Linux - Solución »